特定のファイルだけMasterブランチに取り込む

とあるブランチの特定の変更ファイルだけmasterブランチに取り込むという場面がありました。

調べてみると、cherry pickで変更部分(一部分)をピッキングする記事が大多数でしたが

やりたいことは(似ていますが)特定の”ファイル”を取り込むことでしたので、メモとして記事にしました。

状況と実現したいこと

サイト制作がほぼ終わり、最終調整として細かな修正がきたがaccess.php以外をUPして欲しいとの依頼が来たとする。

この依頼に対し、Gitもaccess.php以外をmasterブランチに取り込む必要がある。

  • masterブランチとでdevelopブランチが存在する。
  • 複数のファイルで小さな変更があった(header.php、footer.php、access.php、style.css)。
  • 全ての修正はdevelopブランチで行われ、コミットされている。
  • access.php以外のファイルをmasterブランチに取り込みたい

1. masterブランチにcheckout

masterブランチにcheckoutします。

コマンドの場合、

git checkout master

2. 特定のファイルのみmasterブランチに取り込む

実行するコマンド
git  checkout [developブランチの最終コミットID] [ファイルパス]

今回の例ではheader.php、footer.php、access.php、style.cssのうち、access.php以外を取り込むんでしたね。

developブランチでの最終コミットから取り込みたいファイルを指定します。

今回developブランチの最終ブランチを1ab123とします。

なので、実行するcommandは以下の通り。

(例)

git  checkout 1ab123 header.php
git  checkout 1ab123 footer.php
git  checkout 1ab123 style.css

3. コミットする

実行するコマンド
git  commit -m "header.php、footer.php、style.cssのみコミットID1ab123の状態"

これにてaccess.php以外をmasterブランチに取り込むことができました。