Edited at

Gitコマンドユースケース

More than 1 year has passed since last update.


gitコマンドユースケース

よく質問されるコマンドやたまにしか使わないので忘れやすいコマンドをメモ


ブランチを新規作成したい

# ベースになるブランチに切り替える

git checkout ${base branch}
# 新規作成
git checkout -b ${branch name}


ファイルがいつ削除されたか確認したい

git log --diff-filter=D --summary


指定したキーワードを含む修正がいつされたか確認したい

git log -p -S${keyword}


一時的に変更を退避したい

# 退避

git stash
# add前のファイルも退避
git stash -u
# 退避した一覧を見る
git stash list
# 直前の退避を戻す
git stash pop
# 退避した変更を反映
git stash apply # 全て
git stash apply stash@{ID} # ID指定
# 削除(直近)
git stash drop


特定のコミット(*)を今のブランチに反映したい

(*)リモートブランチに存在していること

git fetch

git cherry-pick -rn ${commit hash} # commitしない


masterをマージしたい

git fetch

git merge origin/master


コンフリクトしたファイルをマージ元(マージ先)の変更だけ反映したい

# チェックアウトしているブランチの変更を反映

git checkout --ours ${file}

# マージもとのブランチの変更を反映
git checkout --theirs ${file}


マージを取り消したい

git reset --hard ORIG_HEAD


addを取り消したい

git reset HEAD ${file}


一部のファイルやディレクトリだけ別ブランチから取得したい

git fetch

git checkout ${branch} ${directory/file}


コミットを取り消したい(履歴は残す)

git revert ${commit hash} -n # commitしない

# プルリクのマージをリバートしたいとき
# -m ${N} 1: マージされた側のブランチ , 2: マージする側のブランチに戻す
git revert -m 1 ${commit hash} -n # commitしない


間違ってPUSHしてしまった変更を取り消したい

※ブランチを破壊してしまう可能性もある危険なコマンドなので注意

# ログ確認

git log --oneline
# 指定コミットまで戻す
git reset --hard ${commit hash}
# force push
git push origin ${branch} -f


プルリクのcommit履歴を消したい

※ブランチを破壊してしまう可能性もある危険なコマンドなので注意

# ログ確認

git log --oneline
# 指定コミットまで戻す
git reset --soft ${commit hash}
# force push
git push origin ${branch} -f
# ローカルには変更が残っているので必要に応じて再commit & push