Github ガチ勢になるための道（初心者）

##Githubとは？
すっごく簡単に言うと、ソフトウェア開発プロジェクトのためのソース管理サービス！
便利な機能としてソースコードのバージョン管理システムや、バグ追跡機能がある。

###学生が使った方がいい最大の理由
チーム開発を想定した。バージョン管理やバグに対するissueを作成できる様になる。
また、ポートフォリオとして役に立つ！（持論です(^ ^)）
難しそうとか思わず、とりあえず使うことに慣れてみよ！

##記事を見るのに当たる前提条件
この記事ではgithubの登録の仕方などについては書いていません。
コードなどが自分で見やすい様にまとめてあるサイトです。
説明不足になりそうなところは、詳しく書かれているサイトを参考として貼ります。

####この記事の今後！
この記事は私がgitを使ってこれは必要だなっというのが増えたら追加されていきます！
成長する記事なので、ぜひぜひ暖かい目で見守ってください！

##### [Github登録(参考URL)](https://github.co.jp/)

##### [Github基礎知識(参考URL)](https://techacademy.jp/magazine/6235)


##記事におけるコードの表記の仕方
今回はmacのターミナルを主な実行環境としています。
開発するディレクトリーをこの記事では **dev** とします。
コメントアウトに　**#**を使います。
実行結果については、**[** 実行結果 **]**で記載します

```
~/dev >> say hello 　#ハローって言ってくれます（＾ω＾）
~/dev >> pwd         #現在のpassの表示
[/Users/name/dev]
```

##導入コード
<dl>
  <dt>1. git init</dt>
  <dd>開発を行うディレクトリーで実行</dd>
  <dt>2. touch README.md</dt>
  <dd>Readmeの作成(中は自由に変更を)</dd>
  <dt>3. git add README.md</dt>
  <dd>ファイルの作成・編集・削除をインデックスに追加(コミットする前に変更内容を保存)</dd>
  <dt>4. git status</dt>
  <dd>インデックスに追加されているか確認</dd>
  <dt>5. git commit -m "add readme file"</dt>
  <dd>-m の後にコミットする文を記入</dd>
  <dt>6. git remote add origin [リポジトリーurl]
  <dd>ローカルの環境とGithubのリポジトリーを繋ぐ</dd>
  <dt>7. git push origin master</dt>
  <dd>リポジトリーにpush コミットした内容が共有される</dd>
</dl>

<details><summary>他の手段</summary>
他にも手段はあるが、自分が一番使うであろう手段を一つ提示しました。
最初はこれで初めて、自分なりに後々やり方を変えて行く！つもり（自分も触り始めなので！まずは、一歩ずつ
**git clone** から始めるのもあるとか</details>

###毎度のpushで使う流れ！（めっちゃ使う）
<dl>
  <dd>1.git add [filename]</dd>
  <dd>2.git commit -m "text"</dd>
  <dd>3.git push origin master</dd>
</dl>

##Branchコード集
<dl>
  <dt>git branch</dt>
  <dd>現在のブランチを確認 (作業中のブランチには * がついている)</dd>
  <dt>git branch test</dt>
  <dd>ブランチの作成</dd>
  <dt>git checkout test</dt>
  <dd>ブランチの移動</dd>
  <dt>git checkout -b test</dt>
  <dd>ブランチの作成と移動</dd>
  <dt>git push origin test</dt>
  <dd>origin の後にブランチを指定してpush</dd>
  <dt>git branch -d test</dt>
  <dd>branchの削除</dd>
</dl>
####branchのマージの仕方
<dl>
  <dt>1.git checkout master<dt>
  <dt>2.git merge test</dt>
  <dt>3.git push origin master</dt>
</dl>

##リポジトリーで要らなくなったファイルの消し方
ローカルのディレクトリーには残しておきたい！
<dl>
  <dt>git rm --cached [ファイル名]</dt>
  <dd>gitの管理下から削除する</dd>
</dl>
.gitignoreを作成して、そこにファイル名を書いて上げましょう！
.gitignoreはgitの管理下から外すファイルを指定できます。

##管理下から消したファイルの戻し方(commit後)
<dl>
  <dt>git log -p</dt>
  <dd>commitのログを確認し戻したいところのIDを取得</dd>
  <dt>git checkout id</dt>
  <dd>戻したいところのidを入れる</dd>
</dl>



##良く使うコード
<dl>
  <dt>git status</dt>
  <dd>リポジトリーの状態把握に使用</dd>
  <dt>git log -n 5</dt>
  <dd>コミットの履歴を参照(-nで履歴表示数を指定)</dd>
  <dt>git clone [url]</dt>
  <dd>ローカルにリポジトリーのデータを落とす</dd>
  <dt>git reset --soft HEAD^</dt>
  <dd>直前のcommitの取り消し</dd>
  <dd>--soft / --hard : commitだけ削除 / 内容も書き換えたい場合 </dd>
  <dd>HEAD^ / HEAD~{n} : 直前のcommit / 直前n個分のcommit
  <dt>git commit --amend -m "commit text"</dt>
  <dd>コミットメッセージの編集</dd>
  <dt>git branch -d test</dt>
  <dd>branchの削除</dd>
</dl>

##もっとコードに詳しく！
- [git add](https://kimromi.hatenablog.jp/entry/2015/08/04/082357)
- [git commit](https://kimromi.hatenablog.jp/entry/2015/08/05/001357)
- [git push](https://kimromi.hatenablog.jp/entry/2015/08/06/004438)
- [git branch](https://kimromi.hatenablog.jp/entry/2015/08/07/233000)
- [git checkout](https://kimromi.hatenablog.jp/entry/2015/08/08/214700)
- [git featch](https://kimromi.hatenablog.jp/entry/2015/08/12/002544)


###参考サイト
[今さら聞けない！GitHubの使い方](https://techacademy.jp/magazine/6235#sec6)
[Blog@kimromi git](https://kimromi.hatenablog.jp/archive/category/Git)
[Gitコマンド早見表-Qiita](https://qiita.com/kohga/items/dccf135b0af395f69144#commit%E3%81%AE%E5%8F%96%E3%82%8A%E6%B6%88%E3%81%97)