私がいつも行っているgit pullからgit push までの手順をまとめたいと思います。 対象のソースコードはruby on railsでminitestを使っている想定ですが、途中実行するテストコマンド以外は他の言語、フレームワークでも同様の手順で大丈夫です。
git pull
- 作業を始める前にソースコードを最新版にしておく
git branch ○○
- 作業ブランチを切る
git checkout ○○
- 作業ブランチへ移動する
作業 + テスト + コミット
- 編集作業をして、rake testでテストの実行をし、テストが通ることを確認する。
- git add .
- git commit
git checkout master
- 作業中に変更されたソースを取り込むために、一旦masterへ移動
git pull
- 最新のmasterを取得
git checkout ○○
- 作業ブランチへ移動
git rebase master
- rebaseして自分の変更が先頭になるようにする
- masterへ移動してからgit pullしてもいいけど、マージコミットが残るとあまり綺麗じゃないので先にrebaseをしておく
git checkout master
- masterへ移動
git merge ○○
- 作業ブランチをmasterへマージする
- 先にrebaseしているので何事もなくマージできるはず
rake test
- push前の最終確認
- jenkins等のCIツールを使っている場合は、CIツールのテストでこけないように最終確認をしておく
git push origin master
- リモートへpushする
- このときリモートのmasterが既に更新されていたら、git reset –hard HEAD~でmergeを取り消し、手順6へ戻る
かなり面倒くさいですが、gitを使い始めの時はイレギュラーなことが起こるとパニックになり時間もかかってしまうので、なるだけ安全に行うのが最速の方法です。