Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、一方のブランチでだけ追跡しているファイル・フォルダを、別のブランチを選択した状態のフォルダに持ってくる、我流の手順を紹介します。
※シンプルな方法ですが、公式サイトでは見つけられなかった我流です。自己責任でご利用ください。

※ TortoiseGit-2.17.0.2-64bit を使用します。
Git コマンドによる別ブランチで追跡しているファイルの取り込み
Git のコマンドを使用する場合は、git checkout で取り込み元のブランチを指定して、別のブランチのファイルを取り込む方法があります。
git checkout [取り込み元のブランチ] — [特定のファイルの相対パス]
gitで別ブランチの特定ファイルのみをとりこむ
Git のインストールについては以下の記事を参照してください。
TortoiseGit には同様の機能のメニューが見つけられなかった
しかし、 TortoiseGit ではそのようなメニューが見つけられませんでした。
一番近いと思った機能は、「切り替え/チェックアウト」です。
※リポジトリフォルダを右クリックして表示されるメニュー「TortoiseGit」→「切り替え/チェックアウト」を選択します。
1.png)
「切り替え/チェックアウト」では、そのダイアログのブランチで選択した既存のブランチに切り替えると同時に、そのブランチで追跡しているファイル構成で、実際のリポジトリフォルダ内のファイル・フォルダを変更します。
そのため、別のブランチのファイルを checkout によって取り込むことはできなそうです。
2.png)
切り替え前のブランチで追跡しているファイル・フォルダは、切り替え後のブランチで追跡していない場合削除される仕様については以下の記事も参照してください。
TortoiseGit による別ブランチのファイルの取り込み(我流)
別のブランチに切り替えてチェックアウトしたファイルのコピーを一時的に別の場所(デスクトップ)に退避しておき、その後、元のブランチに切り替えて、コピーして退避しておいたファイルをリポジトリフォルダ内に貼り付けます。
はじめに、先ほどと同様に、リポジトリフォルダで右クリックして表示されるメニュー「TortoiseGit」→「取り消し/チェックアウト」を選択します。
1.png)
取り込みたいファイルを追跡管理しているブランチ(例では publish)を選択して、 OK ボタンを押すと、取り込みたいファイルを含んだ、切り替え先のブランチ(例では publish)が管理しているファイル構成にリポジトリフォルダが変わります。
3.png)
別のブランチで取り込みたいファイル・フォルダをコピーして、デスクトップなどに貼り付けて、リポジトリフォルダ外に退避しましょう。
これは、ブランチを変えた際に、それらのファイル・フォルダが消えてしまうためです。
4.png)
取り込みたいファイル・フォルダをデスクトップなどにコピーして退避したら、ブランチを、それらのファイル・フォルダを取り込みたいブランチに切り替えます。
例では publish ブランチから master ブランチに切り替えます。
※以下のダイアログは、リポジトリフォルダで右クリックすると表示されるメニュー「TortoiseGit」→「取り消し/チェックアウト」を選択すると表示されます。
5.png)
ブランチを切り替えると、切り替え先では管理していないファイル・フォルダは削除されます。
6.png)
先ほど退避しておいたファイル・フォルダを、ブランチを切り替えた後のリポジトリフォルダにコピー&ペーストします。
同じ名前のファイルがある場合はスキップするようにして、存在しないファイル・フォルダだけを貼り付けます。
7.png)
以上で、TortoiseGit で、他のブランチで管理対象のファイル・フォルダを、別のブランチに取り込むことができました。
※この時点では、現在のブランチでは Git 管理外のファイル・フォルダとして扱われています。
リポジトリフォルダに配置したファイルを Git 管理対象にコミットする
ファイル・フォルダを Git 管理対象に含めるためのコミットについては以下の記事を参照してください。
まとめ
今回は、Windows シェル拡張(エクスプローラに機能を追加)で Git を操作できる無料の Git クライアントソフトウェア TortoiseGit で、一方のブランチでだけ追跡しているファイル・フォルダを、別のブランチを選択した状態のフォルダに持ってくる、我流の手順を紹介しました。
※シンプルな方法ですが、公式サイトでは見つけられなかった我流です。自己責任でご利用ください。
参照サイト Thank You!
- Git
- TortoiseGit – Windows Shell Interface to Git
- gitで別ブランチの特定ファイルのみをとりこむ
- Git – git-add Documentation
記事一覧 → Compota-Soft-Press
コメント