Open5

gitの何度も調べてしまうコマンド

yukokoyukoko
git cherry-pick <commit ID>
  • 指定したコミットの変更を現在のブランチに新しいコミットとして適用する
  • 他のブランチで行われた特定の変更を現在のブランチに持ってくることができる
git cherry-pick -n <commit ID>
  • -n オプションは --no-commit の略
  • つまり、指定したコミットの変更はステージングエリアに追加されるが、新しいコミットは作成されない
  • 変更を手動で確認や修正をした後に、コミットできる
git cherry-pick -m <parent-number> <merge commit ID>
  • -m オプションは--mainlineの略

  • マージコミットを対象とする際に使用

  • <parent-number>で、どの親コミットとの差分を現在のブランチに適用するかを指定

  • -m 1 <マージコミットID>: 1番目の親(通常はマージ元となるブランチ)との差分を取る

  • -m 2 <マージコミットID>: 2番目の親(通常はマージ先となるブランチ)との差分を取る

  • (例)feature ブランチを main ブランチにマージした場合

    • -m 1 : feature ブランチにあって main ブランチにない変更を適用
    • -m 2 : main ブランチにあって feature ブランチにない変更を適用(あんまりないケース)

https://git-scm.com/docs/git-cherry-pick

yukokoyukoko

別ブランチから特定のファイルを取得する方法

  • ステージング状態で取得
git checkout <取り込み元ブランチ> <取り込むファイル>

// 全てのファイルを取り込みたければ "*" で可能
  • unstaged状態で取得
git show <取り込み元ブランチ名>:path/to/file > path/to/local/file

https://qiita.com/benchan/items/2c9eaeb14e6d66b1bcdb

yukokoyukoko

リモートでマージ済みのブランチをローカルで一括削除するエイリアス

brd = !git fetch --prune && git branch --merged | grep -v 'main' | xargs git branch -d
yukokoyukoko

派生元のブランチを視覚的に確認する

git log --oneline --graph --decorate --all