2

ぼんやりとした遠い過去に、設定プログラムの 1 つとの互換性を破るという決定がありました。ただし、古いソフトウェアを実行しているリモート ユニットがまだ存在するため、古い管理ソフトウェアのバージョンをビルド内に保持する必要がありました。短い「cp -a」の後、以下を含むディレクトリ構造になりました。

mgmt-app
mgmt-app.old

開発は継続され、mgmt-app は多くの修正を蓄積しました。いくつかは新しい機能といくつかの一般的な機能です。おそらくご想像のとおり、mgmt-app.old にはこれらの修正の一部が含まれていないことに注意してください。関連する修正を厳選し、コメントなどの有用なものを保持し、コミットを mgmt-app.old に適用できればいいのにと思います。mgmt-app に適用されたツリーにすでにあるため、通常は適用されません。

git を使用してリポジトリのバージョン管理を行っています。これらのコミットをツリーの別の部分に「バックポート」する方法はありますか? これは「patch -p」でパッチを手動で適用するだけで解決するのでしょうか?

4

2 に答える 2

1

「古い」ものの新しいブランチを開始します。

git checkout -b old

を使用しgitkて、履歴をさかのぼって、作成される直前のコミットを見つけますmgmt-app.old。そのコミットの SHA1 を特定し、

git reset --hard <sha1>

oldそこに分岐点を作成します。これで、開発が分岐したときのブランチができました。インタラクティブなリベース( git rebase -i) を実行して、新しい/現在の開発ブランチからこの古いブランチへのコミットをチェリー ピック (および必要に応じて編集) することができます。

于 2012-04-13T18:37:17.573 に答える
0

使用するgit cherrypick

于 2012-04-13T15:17:48.383 に答える