Open4
gitの何度も調べてしまうコマンド
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 ブランチにない変更を適用(あんまりないケース)
別ブランチから特定のファイルを取得する方法
- ステージング状態で取得
git checkout <取り込み元ブランチ> <取り込むファイル>
- unstaged状態で取得
git show <取り込み元ブランチ名>:path/to/file > path/to/local/file
リモートでマージ済みのブランチをローカルで一括削除するエイリアス
brd = !git fetch --prune && git branch --merged | grep -v 'main' | xargs git branch -d
派生元のブランチを特定するコマンド
git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F'[]~^[]' '{print $2}'