コンパイラかく語りき

import { Fun } from 'programming'

git cherry-pickがときどき便利

gitコマンドでcherry-pickというコマンドを覚えました。

git cherry-pickは、あるコミットを取得して現在のブランチに反映するコマンドです。

 

1. masterにいる状態

現在、masterブランチにいます。

 

2. ブランチ作成

新しいブランチを作成して、そのブランチに移動します。

$ git checkout -b new-html

 

3. 作業

なにかしらの作業をして、コミットを行います。

$ git add .

$ git commit -m "作業終了"

  

4. バグの発見

作業をしながら、バグを発見したとしましょう。本来なら、新しいブランチを切って、バグ対応をするべきです。

しかし、誤って現在のブランチでバグの対応をして、コミットまで行ってしまったとします。(ちょっと無理がある例な気がしてきた…w)

$ git add .

$ git commit -m "バグフィックス"

 

5. ブランチ作成

一度masterブランチに戻ります。

$ git checkout master

 

そこからバグ対応のためのブランチを作成します。

$ git checkout -b bug-fix

 

6. コミットの確認

バグ対応を行ったブランチに移動して、ログを見ます。

$ git checkout new-html

$ git log

 

コミットログが出るので、取得したいコミットのハッシュ値をコピーします。

 

7. コミットの取得

新規作成したブランチに移動します。

$ git checkout bug-fix

 

先ほどコピーしたコミット番号を指定して、git cherry-pickを実行します。

$ git cherry-pick ee2c547c9dc8

(コミット番号は一例です)

 

これで、先ほどのブランチで行ったバグ対応のコミットだけを取得することができます。

ときどき便利です。

 

 

参考URL:

d.hatena.ne.jp