0

私が git リポジトリの探索的ブランチに取り組んでいて、コミットが 1 つしかないことを想像してみてください。私の仕事はすぐには必要ないと判断したので、ブランチ/タグを作成したくありません。実際には、変更を破棄したいのですが、万が一に備えて、パッチを保存したいと考えています。

この投稿では、アーカイブしたい変更が 1 つだけあるとします。

* 040cc7c   (HEAD, ExperimentalBranch) This is where the experiment is
* a29ceb7   (master) This is the main branch
...

私が提案するアーカイブ ソリューションは次のとおりです。

  1. commit のパッチを作成します040cc7c
  2. 長期保存用に、パッチ ファイルをどこかにアーカイブします。
  3. をリポジトリから削除しExperimentalBranchます。

これまでのところ、すべてがうまくいっているように見えますが、数年後にパッチを元に戻したいと思うかもしれません。互換性がなく、適用できないファイル/行を参照する可能性があります。これを解決するには、パッチの親 SHA をチェックアウトして、そこに適用します。

したがって、私が提案するアーカイブ解除ソリューションは次のとおりです。

  1. SHA をチェックアウトしa29ceb7ます。
  2. パッチを適用します。

唯一の問題は、パッチを作成すると、 SHA が含まれていることがわかりますが、どこ040cc7cにも言及されていないことです。パッチを作成してから何年も経過するとa29ceb7、親を特定するのが非常に困難になる可能性があります。040cc7cさらに、何年も前にブランチを削除したため、親を見つけるのに役立つ git コマンドがあるとは思いませんでした。

パッチを作成するときに、その親 SHA もファイルに含まれるようにする方法はありますか?


私の現在の回避策は、親の SHA を含むようにパッチの名前を変更することですが、これは忘れがちで、より手動です。

4

1 に答える 1