14

作業コピー (ローカル コピー) がブランチから作成された場合、それを A と呼びましょう。コーディングはブランチ A で行われましたが、ブランチ A はコミットに対して "クローズ" され、ブランチ b が開かれました。最初にブランチ A に変更をコミットせずに、作業コピーの変更をブランチ B にマージし、ブランチ B にコミットするにはどうすればよいですか。

幹→枝A。

   I checked out branch A and made changes.
   Branch A was closed to commits.

ブランチ A から作成された新しいブランチ。ブランチ A -> ブランチ B。

   I would like to commit my working copy changes (currently pointing at Branch A into branch B without commiting to Branch A)
4

2 に答える 2

16
  1. 作業コピーのバックアップを作成します。
  2. svn switch分岐するB
  3. 変更のレビュー (基本リビジョンは異なる可能性があり、svn は盲目的で愚かなテキスト マージのみを行います)、競合があれば解決します
  4. 専念

変更がコミットされていない作業コピーでこのようなことを行うのは危険です。何か問題が発生した場合、または競合する変更が多すぎる場合は、バックアップ バージョンにロールバックし、作業コピーのベース リビジョン から一時的なブランチを作成し、Aそれに切り替えて、変更をコミットします。次に、そのブランチを必要な方法でマージし、B後で削除します。

svn のマントラを覚えておいてください:早期にコミットし、頻繁にコミットします。コミットされていない変更が 1 日以上残っていると、緊張します。通常、数時間以上かかる開発にはフィーチャー ブランチを作成します。そして定期的にそれにコミットします。完了したら、元の場所にマージし、後で削除します。

于 2010-05-25T14:28:16.090 に答える
2

細心の注意を払うために、変更をプライベート ブランチにコミットし (これを と呼びましょう)、そのブランチを新しい open-for-commits ブランチにCマージします。CB

  1. cdコミットしたい変更を含む作業ディレクトリへ
  2. svn copy . C
  3. cd ..チェックアウトを使用してワークスペース フォルダーに
  4. svn co B
  5. cdB ディレクトリに
  6. svn mergeステップ 2 のリビジョン。
  7. 変更を確認します。
  8. 専念!
于 2013-04-03T17:46:03.577 に答える