LoginSignup
5
5

More than 1 year has passed since last update.

Gitコマンドユースケース

Last updated at Posted at 2018-06-02

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

Fast-Forwardできればする。できなければNon Fast-Forward(マージコミットが作られる)

常にマージコミットを作りたい場合

git merge --no-ff origin/master

常にFast-Forwardしたい場合(できない場合はエラーになる)

git merge --ff-only origin/master

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

# チェックアウトしているブランチの変更を反映
git checkout --ours ${file}

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

マージを取り消したい

git reset --hard ORIG_HEAD

addを取り消したい

git reset HEAD ${file}

Untracked filesを消したい

# 削除対象ファイルの確認
git clean -n

# 削除対象ディレクトリの確認
git clean -nd

# ファイル削除
git clean -f

# ディレクトリ削除
git clean -fd

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

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

直前のコミットメッセージを修正したい

git commit --amend

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

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

ローカルのコミットを取り消す

# ログ確認
git log --oneline
# 指定コミットまで戻す
git reset --soft ${commit hash}
# stagから下げる
git restore --staged <file>...
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5