私が git リポジトリの探索的ブランチに取り組んでいて、コミットが 1 つしかないことを想像してみてください。私の仕事はすぐには必要ないと判断したので、ブランチ/タグを作成したくありません。実際には、変更を破棄したいのですが、万が一に備えて、パッチを保存したいと考えています。
この投稿では、アーカイブしたい変更が 1 つだけあるとします。
* 040cc7c (HEAD, ExperimentalBranch) This is where the experiment is
* a29ceb7 (master) This is the main branch
...
私が提案するアーカイブ ソリューションは次のとおりです。
- commit のパッチを作成します
040cc7c
。 - 長期保存用に、パッチ ファイルをどこかにアーカイブします。
- をリポジトリから削除し
ExperimentalBranch
ます。
これまでのところ、すべてがうまくいっているように見えますが、数年後にパッチを元に戻したいと思うかもしれません。互換性がなく、適用できないファイル/行を参照する可能性があります。これを解決するには、パッチの親 SHA をチェックアウトして、そこに適用します。
したがって、私が提案するアーカイブ解除ソリューションは次のとおりです。
- SHA をチェックアウトし
a29ceb7
ます。 - パッチを適用します。
唯一の問題は、パッチを作成すると、 SHA が含まれていることがわかりますが、どこ040cc7c
にも言及されていないことです。パッチを作成してから何年も経過するとa29ceb7
、親を特定するのが非常に困難になる可能性があります。040cc7c
さらに、何年も前にブランチを削除したため、親を見つけるのに役立つ git コマンドがあるとは思いませんでした。
パッチを作成するときに、その親 SHA もファイルに含まれるようにする方法はありますか?
私の現在の回避策は、親の SHA を含むようにパッチの名前を変更することですが、これは忘れがちで、より手動です。