特定のブランチにあるファイルを別のブランチに移す方法
概要
Gitを使った運用でのマニアック小ネタです。 特定のブランチにしかないファイルを別のブランチに移す方法を考えていきます。
方法① コピペする
単純で分かりやすい方法です。 デスクトップなどにファイルを一時的にコピーしておいて、ブランチを移動してコピペすればファイルの移動が完了です。 しかし、ファイルが増えて来た場合、コピペの手間も増えていってしまいます。 何よりスマートな方法とは言い難いと思います。
方法② Revertコミットを利用する
では、Gitを利用した移動方法を考えてみます。 Gitにはrevertコマンドを使ってあるコミットを打ち消すコミットを作ることができます。
例えば、developブランチにしかないtest1.txtをfeature/add_test_fileというブランチに移動させてみたいと思います。
developブランチで作業
rm test1.txt git add test1.txt git commit -m "テストファイルを削除"
これでテストファイルを削除したコミットのハッシュ値が決まるので、revertコマンドを使って打ち消しを行います。
git revert {先ほどのtest1.txtの削除commitのhash値}
打ち消しを行ったので、test1.txtのファイルが復活します。
これでrevertコミットのハッシュ値が決まります。 ここでブランチを移動します。
git checkout feature/add_test_file
移動したら先ほどのrevertコミットをチェリーピックします。
git cherry-pick {revert commit hash}
これで、feature/add_test_fileブランチにtest1.txtを移動させることができました。
まとめ
以上、Gitコマンドを使った小ネタでした!