問題タブ [git-patch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - アーカイブとして機能するように、親 SHA で git パッチを作成する方法は?
私が git リポジトリの探索的ブランチに取り組んでいて、コミットが 1 つしかないことを想像してみてください。私の仕事はすぐには必要ないと判断したので、ブランチ/タグを作成したくありません。実際には、変更を破棄したいのですが、万が一に備えて、パッチを保存したいと考えています。
この投稿では、アーカイブしたい変更が 1 つだけあるとします。
私が提案するアーカイブ ソリューションは次のとおりです。
- commit のパッチを作成します
040cc7c
。 - 長期保存用に、パッチ ファイルをどこかにアーカイブします。
- をリポジトリから削除し
ExperimentalBranch
ます。
これまでのところ、すべてがうまくいっているように見えますが、数年後にパッチを元に戻したいと思うかもしれません。互換性がなく、適用できないファイル/行を参照する可能性があります。これを解決するには、パッチの親 SHA をチェックアウトして、そこに適用します。
したがって、私が提案するアーカイブ解除ソリューションは次のとおりです。
- SHA をチェックアウトし
a29ceb7
ます。 - パッチを適用します。
唯一の問題は、パッチを作成すると、 SHA が含まれていることがわかりますが、どこ040cc7c
にも言及されていないことです。パッチを作成してから何年も経過するとa29ceb7
、親を特定するのが非常に困難になる可能性があります。040cc7c
さらに、何年も前にブランチを削除したため、親を見つけるのに役立つ git コマンドがあるとは思いませんでした。
パッチを作成するときに、その親 SHA もファイルに含まれるようにする方法はありますか?
私の現在の回避策は、親の SHA を含むようにパッチの名前を変更することですが、これは忘れがちで、より手動です。