マージ前にはきちんと差分を見ましょう
【想定】
現在のブランチ:issue001-fix-xxx
マージ先ブランチ:master
~~~ プログラム修正後 ~~~
前回コミット(HEAD)からの差分
git diff HEAD
ステージングエリアとHEADとの差分
git diff --staged
git diff --cached
ステージングエリアというのはaddしたファイル群のことですね。ちなみに--staged と --cachedは同じ結果。お好きな方をどうぞ
~~~ コミット ~~~
自分がしたコミットを確認
git log -p --name-only (修正したファイル一覧)
git log -p (変更内容差分, ファイル名を引数で渡すと単体で指定可)
git log -p --ignore-space-change (スペースや改行で差分が見づらいとき)
~~~ マージ先(master)に切り替える(git checkout master
)
編集途中のファイルが残っているからできないと言われたら
下記どちらかを実行後チェックアウト
git checkout . (編集内容を取り消す(HEADの状態に戻す))←※コミットした内容は消えません
git stash save (編集内容をスタックする(後で取り出せます))
masterブランチを最新に更新(masterブランチなう)
git pull --rebase origin master
リモートの更新をそのまま持ってくるだけなので--rebase
でマージコミットは作らない
他人の更新を確認する
git log --oneline
(念のため自分の状態も確認しておきたい人は下記コマンド )
git status -s
プルリクエストで見られる差分を確認
git diff master...issue001-fix-xxx
git diff [マージ先ブランチ]...[マージ元ブランチ]
はマージによっての修正内容が、プログラム単位の差分で見られます。(※本当はコミット単位でも見たいんですが、その方法はわかりません。知りたい
追記)コミット単位-> Qiita-[Git]ブランチ間の差分をコミット単位で知る・見る
Qiita-プルリクエストで表示される差分の仕組みを GitHub に問い合わせたときの話
いざマージ!
git merge --no-ff issue001-fix-xxx
マージ単位でrevert(打ち消し)できるようにこの場合は--no-ff
でマージコミットをしっかり残しましょう
git log --author [自分の名前]
masterに自分が作ったコミットがちゃんとマージされています
お疲れ様でした!
git revert
やreset
、reflog
などの取り消し、修正の仕方や、
stash
やblame
などのオシャレなコマンドに関しては後日別の投稿でご紹介する予定です。
過去に書いた Git関連の記事
Qiita-何も知らない人がGitとGitHubを独学で知る
Qiita-git checkout できないとき、私はこうしてます。
Qiita-プルリクエストで表示される差分の仕組みを GitHub に問い合わせたときの話
Qiita-ブランチ間の差分をコミット単位で知る・見る