以下は個人的な見解です。
社内でのgit利用者のステップアップのためのいい目安はないかなー と思って作ってみました。
かなり独断と偏見が入ってますので、間違っている箇所やほかにも入れたほうがよさそうな、ものなんかがあったらぜひ教えて下さい。
2まで理解していれば、後は社内の詳しい人にきけばなんとかなるんじゃないかな~と思ってます。
下記のチェックリストについて
- 基本操作 で全て○がつく
- 個人でのgit利用の基礎ができている
- ブランチ、merge、rebase、(cherry-pick)について で8割以上○がつく
- 小規模なチームでのgit利用の基礎ができている
- コミットグラフの概念 がわかる
- 運用ルールに合わせてチームでのgit利用ができる
- reflogが何かしっている
- 何かが起きてもなんとかできる!
## 1 基本操作
- コミットができる
- コミット間のdiffがみれる
- リモートのリポジトリにプッシュができる
- リモートのリポジトリからpullができる
- リモートのリポジトリのクローンができる
- git commit --amend ときいて使い方がわかる
- .gitignore が何のためにあるファイルか知っている
- Learn Git Branching をクリアできる
2 ブランチ、merge、rebase、(cherry-pick)について
- ブランチの作成ができる
- ブランチの削除ができる
- ブランチを利用して開発が行える
- あるブランチとあるブランチ2の差分がすぐに出せることを知っている
- あるブランチAとあるブランチBを比較して、Aのみに加えられた差分をすぐに出せることを知っている
- merge ができる
- merge に失敗したらmerge前に戻れることを知っている
- そのやりかたも知っている
- rebase ができる
- rebase に失敗したらmerge前に戻れることを知っている
- そのやりかたも知っている
- (cherry-pick についても上記merge,rebaseと同じ程度理解している)
- (別の人が入れた修正等の入っている、pull完了している)master ブランチ を作業中のブランチに取り込むことができる
- merge中のコンフリクトを解消できる
- rebase中のコンフリクトを解消できる
- rebase -i で自分のコミットを綺麗にまとめることができる
- 共有リポジトリにpushしたものは rebaseしてはいけないことをしっている
3 コミットグラフの概念
- 全てのコミットにはハッシュと呼ばれる一意な値が付けられることを知っている
- あるコミットはひとつ前のコミットを知っているので、どれかひとつのコミットハッシュがわかると最初のコミットまでさかのぼれるのは当然!
- ブランチやタグはコミットハッシュに対するエイリアスである、といわれてピンとくる
- ブランチとタグの違いを説明できる
- reset と checkout の違いを説明できる
- reset と revert の違いを説明できる
4 その他
- git reflog が何なのか知っている
- git reset --soft とgit reset --hard の違いが分かる
- git stash save "<任意の文字列>" と git stash apply が使える