Git

プロジェクトGit運用手順まとめ

More than 3 years have passed since last update.

本記事について

現在プロジェクトでGitを利用しているが、運用フローが確立されておらず非効率な状態になっているため、効率的なフローで運用する手順を明確にするために、Git運用手順をまとめる。

Git運用手順

masterの取得 (git clone)

cd /GIT_CHECKOUT_DIR/
git clone git@github.com:hogehoge/hogehoge.git

開発ブランチの作成 (git checkout)

開発ブランチを master から作成する。
ブランチ名は説明的な名前とすること。
(例: rename-wrong-class, add-payment-module)

cd hogehoge
git checkout -b 作成するブランチ名

※ブランチの情報を確認する場合は

git branch -a

コード修正

思う存分にコードを編集しましょう。

ローカルコミット (git commit)

git status # git管理下にあるファイルの状態を確認
git add ファイル指定 # 編集したファイルをコミット対象に登録する
git commit # vimが立ち上がり、コミットメッセージを入力して保存、vimを閉じるとコミットが完了する

masterに入っている修正をブランチに取り込む

ローカルのmasterを最新にする (git pull)

編集作業中にmasterにコミットが入ることは多々あるので、masterに入っている修正を修正ブランチに取り込む。
この時、修正したファイルは全てローカルブランチにコミットし、修正ブランチは編集中のファイルが無い状態にしておくこと。

git checkout master # masterに移動
git pull # masterの状態を最新にする

修正ブランチでrebase実施 (git rebase)

git checkout - # 一つ前にいたブランチに戻る この例では修正ブランチに戻る
git rebase master # リベースを実施する

コンフリクトが発生した場合

vim /PATH_TO_FILE/conflict.file # コンフリクトしたファイルを手動マージ

コンフリクトしたファイル全てをマージ後

git add /PATH_TO_FILE/conflict.file # 手動マージしたファイルをadd
git rebase --continue

rebase前の状態に戻したい時

git rebase --abort

修正ブランチをremoteにpush (git push)

rebaseが正常に完了したら、remoteにpushする

git push origin pushするローカルブランチ名:remoteのブランチ名

Pull Requestを送る

正常にremoteにpushされたかをGitHub画面から確認し、問題無ければPull Requestを作成する

Pull Requestのマージ

Github上で送信されているPull Requestを確認し、問題無ければマージする
※このとき、マージされたブランチは削除してしまってOK

注意点

Pull Requestを作成する際は必ずコンフリクトが発生しない状態にすること
Github上でAuto MergeができないPull RequestはRejectする

ちょっと便利なTips

よく使うコマンドはshellのaliasにしておくといいかも。

.bashrc
alias gc='git checkout'
alias gb='git branch'

とかとか。