web関連

【git】別ブランチの特定のコミットをpullする方法

別ブランチの特定のコミットだけを取得したかった時の備忘録

特定のブランチのコミットをpull

指定したコミットを他のブランチに適用するためのGitコマンド。(ブランチの指定などは特にしていない)

git cherry-pick <コミットID>

pullした後にpushする方法

git cherry-pick後、新しいコミットとして登録されるため、git addgit commitをせずにgit push可能。なので、以下のコマンドでpush。

git push origin <ブランチ名>

or

git push -f origin <ブランチ名>

変更を(全部)取り消す場合

git cherry-pick後に、取り込んだコミットを消す場合。

git reset --hard HEAD~

git cherry-pick実行前に戻るが、その間に編集や何か作業していたりする場合それも消える。

変更の一部(git cherry部分だけ)を取り消す場合

git cherry-pickで取り込んだ部分だけを消したい場合。

  1. git logを実行。取り消したい操作を確認。(qを押すことで解除)
    PS C:\Users\User\wordpress> git log                                            
    commit 1234567890abcdef (HEAD -> main)
    Author: Tom <email@example.com>
    Date:   Mon Jan 13 18:19:59 2025 +0900
  2. git revert 1234567890abcdefコマンド実行。(1234567890abcdef部分がgit cherry-pickしたコミット)
  3. vimが開くので、Escキーを押して編集モードを終了し、:q!と入力してEnterキーを押すと、編集内容を保存せずにエディタが終了する。

git revertした後も、「消した」作業履歴はコミット履歴に残るっぽい。
vimを開く必要がないのであれば、git revert 1234567890abcdef --no-edit

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA