Git 勉強会で学べた共同開発で意識すべき2つのこと


SCMBootCamp in Nagoya #2 に参加させていただきました。
Gitをチームで運用した際の注意点を学べました。

pull するときの注意点

他のリモートリポジトリの内容をローカルリポジトリに取り込むコマンドが pull である。

$ git pull

このコマンドは、デフォルトの動作は以下のような動作となる。

$ git fetch
$ git merge origin/master

よって何も考えずに pull しているとコミットログがえらいことになる。
具体的にはこんな感じになる(最初の方)

pull だけのためのブランチがたくさんできてしまう。

これを避けるために rebase を利用する。

$ git pull --rebase

リモートリポジトリの情報を取り込む際に rebase することでコミットログが綺麗に保てる。

pushするときの注意点

push する前に、リモートリポジトリのコミットログを分かりやすくすることが望ましい。
それを実現するために、ローカルリポジトリは、以下の2つのコマンドを利用して整理しておくとよい。

$ git rebase -i

このコマンドによって、歴史の改変ができる。複数のコミットをまとめたりコメントを編集できるので push 前に綺麗にするとよい。

$ git checkout -b branch
$ git merge branch

いわゆる feature branch をきちんと切る、ということ。
機能の追加等の目的ごとにブランチを切ることで、コミットログ上で何をやっているかが明確になる。

その他勉強会の振り返り

Keep

  • いろいろと幅広い知識をもつ人達に会うことができ、とても良い機会であった
  • mergerebase の使いどころの理解が深まった
  • Git Command のCheet Sheet作成を通じたチームでのGit運用が楽しかった
  • Git Commandのカルタが楽しかった

Problem

  • 勉強会のコマンドの history をコピーし忘れてしまった

Try

  • Team運用する際は、とくにコミットログの綺麗さを意識する
  • 興味のあることのCheet Sheetをチームで友人とGithubを通じて作成してみる