サルでもわかるGit入門を読んだよ

そろそろ本当にGit使えるようになりたいと思っていた矢先に、サルでもわかるGit入門なんてものがTLに流れてきたので読んでみました。
主に知らなかったことのメモです。

HEADからの相対位置を指定する方法

HEAD^^^とか指定することがあるかと思いますが、HEAD~3なんて指定もできるんですねえ。

mergeとrebaseの使い分け

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

  • トピックブランチに統合ブランチの最新のコードを取り込むときはrebase
    • git pull --rebaseかな?
  • 統合ブランチにトピックブランチを取り込む場合は、rebaseしてからmerge
    • git merge && git rebaseでいいのか?

トピックブランチと統合ブランチでの運用例

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】


git-flow使った方がいいのかなあ?

ブランチの削除

$ git branch -d (branch name)

ブランチの作成しかしたことなかったから知らなかった……

コンフリクト時のやり直しとか

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】


マージの取り消し(マージに限らないはず)

$ git reset --hard HEAD~


コンフリクトが発生した場合のリベースの継続

$ vim conflict.txt
$ git add conflict.txt
$ git rebase --continue

pull

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】


Mercurialと違ってpullするとマージされる。

Git Mercurial
git pull hg pull --update
git fetch hg pull

かな?

タグ

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

  • 軽量タグ
    • 名前を付けられる
  • 注釈付きタグ
    • 名前を付けられる
    • コメントを付けられる
    • 署名を付けられる

2種類タグがあるなんて知らなかった!


軽量タグ。

$ git tag (tag name)

注釈付きタグ。

$ git tag -am "コメント" (tag name) 
  • aで注釈付きタグ指定、-mはコメント。


タグの削除。

$ git tag -d (tag name)

リセット

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

  • soft
  • mixed
  • hard

の3種類のリセットがあるとか知らなかった!

  • soft
    • コミットだけをなかったことにする
  • mixed
    • mixed変更したインデックスの状態を元に戻す
  • hard
    • 最近のコミットを完全になかったことにする

という使い分けが良いみたい。

対話的なリベース

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

$ git rebase -i

でいろいろ履歴をいじれちゃう。Mercurialにはないかなー、多分。

コミットを一つにまとめてマージ

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】

$ git merge --squash

でAとBのコミット一つのコミットにまとめてマージできる。


一応全部読んだ。(逆引き除く。でもあとで読む)
すごくわかりやすいので、Gitを知っている人も知らない人も一度読んでみるといいかも!