Git 初心者に向けた概要をまとめてみた
Gitを使う上で押さえておきたいところをまとめてみました
(自分含め初心者向けのメモ)
Gitとは
資産管理ツールです。
成果物を版数管理するツール。
様々な要望や検討が伴うお仕事では、並行した検討にもかかわらず
同一の資料やソースコードに手を入れたいことがしばしば。
するとファイルをコピーして一時的に手を入れる、ということも。
すると・・・
- 「この資料、どれが最新なんだっけ」
- 「この対応、実はなかったことに。。」
- 「君の修正、上書きして消しちゃった!」
なんてことになりかねません。
それを解決するのが資産管理ツールです。
資産管理ツールを使うことで、成果物を一か所に集めて最新の ファイルを格納/編集するルールを適用する。
SVNとの違い
成果物を共有する格納場所
1つの格納領域(リポジトリ)に
- ひとつだけの格納場所 か
- 複数の格納場所 か
SVN…「1.」のみ
Git…「1.」「2.」両方OK
ただしGitは自由度が高いので、
「1.」のように使うか、「2.」のように使うか のルールが必要です。
Gitは複数の成果物格納場所とつながっている(イメージ的表現)ので、
「いま○○の成果物格納場所をみてる」という状態があります。
※「作業ブランチは○○」と表現する
編集の統合(マージ)
マージがし易ければ、複数人での同時開発が捗ります。
先輩「あ、あれまだ終わってないからまだ着手しちゃダメよ」
ぼく「ひま」
というのが減ります。
SVN…マージめんどい。
Git…マージ賢い。早い。
Gitだと、同ファイルを編集しても、編集箇所がある程度離れていれば
自動的に高速にマージができます。
※SVNだと自動的にマージされず、ファイル単位で手動でマージが必要
覚えておきたい操作
- git fetch
サーバーのリポジトリ情報を取得する。 ※これやらないと共有した資産に対して手が出せない
- git branch '[ブランチ名]'
現作業ブランチを元に[ブランチ名]を作成する。 ※基本的に、編集中のファイルは無い状態で行う
- git checkout '[ブランチ名]'
作業ブランチを指定したブランチに変更する。 ※基本的に、編集中のファイルは無い状態で行う
- git status
作業ブランチの編集中ファイルの状態を確認
- git commit
作業ブランチの変更を、保存する。 ※Gitはこの「保存した変更」単位で差分を比較、集約(マージ)する
- git push origin '[ブランチ名]'
ブランチの変更をサーバーのリポジトリ上に公開する。 ※これで変更点をみんなが確認できます。(fetchしてね)
- git merge origin/[ブランチ名]
作業ブランチに対し、[ブランチ名]との差分をマージする。 ※同ファイル、同行くらいの差がある場合はコンフリクトするので 編集→commit→push が必要。
- git pull
git fetch、(作業ブランチに対する)git merge を行う。
- git stash
編集中のファイルを、一時的に退避する。
- git stash pop
退避した編集を反映する。
- git cherry-pick [コミットID]
作業ブランチに、指定したコミットIDの編集およびコミットを適用する。
(個人的には cherry-pick のすばらしさに感動して Git が好きになりました)