初学者です。
GitHubを使って1ヶ月くらいになりますが、理解しきれてないとこがあるので纏めがてら記述します。
※アカウントの登録法、操作方法などを記述したものではありませんので悪しからず。
追記:随時追加していきます。
GitとGitHubとは?
Git
ソースコードなどのファイルやフォルダの変更履歴を記録・追跡するためのバージョン管理システム。
Gitでアプリを管理すると、それぞれの開発段階でセーブポイントを作れる!
時系列に沿って管理してくれるため、ポイントごとに遡ることもできる。
初期(ベース)・セーブ! ▶︎ フロント実装・セーブ! ▶︎最新版・セーブ!▶︎...みたいな
これだけでも便利なのはわかったけれど、チーム開発することを想定するとさらに力を発揮できる!
< 複数人で開発するときの問題 >
資料を受け渡す時にメールでやりとりするのは大変...
また、同じファイルを複数人で編集したい場合に、誰かがそのファイルを編集し終わるまで手が出せなくなる...と、問題がいくつか出てくる。
以上のことから、「同じプログラムのファイルを複数人で編集する」を実現・解決してくれるのがGitHub!
GitHub
Gitの仕組みを利用して、簡単に複数人での開発ができるWebサービスのこと。
実装中のコードを共有し、コメントをもらうこともでき、実際の現場でも活用されている。
また、SlackやCircleCIなどと連携することもできてかなりの強者。
リポジトリ
Gitの管理下にあるファイルやディレクトリの変更履歴を残しておく箱のようなもの。
Gitの中に、自分がこれから作るアプリをディレクトリごとぶっ込んで、変更履歴を記録・追跡するためのバージョン管理を指定するみたいなイメージ。
リポジトリには、ローカルリポジトリとリモートリポジトリがある!
ローカルリポジトリ
自分が今使ってるパソコン上(ローカル環境)においているリポジトリのこと。
リポジトリを作っても、自分のパソコンの中にあるため、ファイルやディレクトリを変更、修正した際は好きなタイミングで記録できる。
リモートリポジトリ
リモートリポジトリはローカルの真逆。外部サーバー上に置くリポジトリのこと。
作成した箱がインターネットを通して別の場所に作られているイメージ!
外部サーバーにある=他の人に自分のコードを共有できる!
つまり、複数人(チーム)で開発する時に使うのがリモートリポジトリ!
ローカルと違うのは、直接の変更修正ができない。一旦ローカルでいじった後、同期して修正するという流れになる。
ローカルリポジトリを作ったら、そのアプリの現状を保存させる。
その保存作業で必要になるのがcommit。
commit(コミット)
ファイルやディレクトリの変更修正を、リポジトリに記録すること。
commitをすることで、変更修正の時系列の管理が行いやすくなり、変更修正を遡る事が可能に!
< コミットの粒度 >
commitをするにあたって、どの程度の頻度で記録していくかは悩みどころ。
粗いコミット |
---|
ユーザー管理機能 |
投稿機能 |
編集機能 |
細かいコミット |
---|
ユーザー管理機能 ルート |
ユーザー管理機能 コントローラー |
ユーザー管理機能 ビュー |
比較すると、やはり細かい方がわかりやすい。
極力、作業の節目ごとにするといいのかと。
コミットメッセージ
commitには、それぞれ「なんの変更修正なのか?何をしたのか?」をわかるように題名をつける。中身をいちいち確認せずともわかりやすくするため。(目次みたいなイメージ)
※企業によっては英語表記で、というとこもあるそうな。。
ちなみに、commitは初期段階の、アプリを立ち上げた時点で最初のコミット(first commit)をしておく。
※初期状態の把握のため。
commit log
今まで行ったcommitの履歴が確認できる。
commit logによってアプリケーションの実装の過程を振り返り、実装を戻す際も、どこのcommitの段階まで戻るべきかがわかる。
インデックス
変更修正が一時的に保存される場所。インデックスに保存されている内容がcommitの対象になる。
add (アド)
インデックスに登録して、コミットの対象にすること。(チェックマークをつける、外すで決められる)
直訳でaddは「追加」。
push (プッシュ)
ローカルリポジトリでのコミットをリモートリポジトリに反映する。
このpushから先(リモートに反映していく作業)は、個人的にかなり
慎重になった方がいいかなと。
GitHubDesktopを使っていると、とりあえず上のボタンポチポチしてたけど、必ず表記と意味を調べてからポチること。