Git
コードのバージョン管理システム
面倒なのでたとえで説明すると
(大きい)パズルを考える。どのピースを作業したかの差分を記録していくものである。
複数の人が作業しても大丈夫。作業が差分の単位で記録されるので、過去に戻れる。
リモート(外部のサーバ)に記録する(データのクラウド管理のような)ことで
コーディングにも言えることだが、実際に手を動かしてみると簡単だけど、言葉で説明するとなかなか伝えづらいといことがあり、gitも同じである。ので、今回は、補間的な内容を目指す。
よって、シナリオと用語の説明だけを書くことにする。
シナリオ
リポジトリを作る
初めて作る => init
外から持ってくる => clone
作業分をコミットしたい
編集したファイルを add する
addしたファイル群を commit する
確認系
過去のコミットを確認 => log
addしたファイルなどの確認 => status
ブランチ系
現在の位置から新しいブランチを作る => branch
あるブランチの先の状態にする => checkout
リモートのブランチをダウンロード => fetch
作業した内容をリモートに上げる
push
マージ
ブランチをbranchAとBranchBというのがあったとして、作業分を取り込むこと
用語
リポジトリ
日本語だと倉庫という意味。プロジェクトの単位。
リモート
自分のパソコン(ローカル)側に対して、データを外部に保存してくるサーバ(githubなど)側のこと。
コミット
自分の編集した作業分のひとかたまり。差分で管理。
ひとつ前(正確には任意)のコミットに対し、どのファイルのどこを編集したか記録する。
(過去)○ <- ○ <- ○(現在) のように書かれる。
ステージ
コミットする予定ファイルのリストようなもの。
addしてステージに上げる
ブランチ
コミットが数珠つなぎになったもの。
ローカルブランチとリモートブランチを混乱しないように。
プルリクエスト
githubのサービス上行われる新たなブランチを本流ブランチマージしてというリクエスト。
リクエスト後、内容について検討して問題なければマージする
コンフリクト
ブランチマージ(やコミットを取り込む)するときに
github, gitbucket, gitlab
gitのデータを管理してくれるWebサービス。webでソースコードも見れる。
コマンド(補足)
git cherry-pick
任意のコミットを取り込む
リモートのデータを取り込む
git stash
今の作業分(最新コミットとのファイルの差分)を保存して、最新のコミットの状態にする
git remote
originは任意の名前。↑は、リモートで管理するurlをoriginという名前で追加する