問題タブ [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.

0 投票する
1 に答える
17 参照

git - アーカイブとして機能するように、親 SHA で git パッチを作成する方法は?

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

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

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

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

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

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

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

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

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


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