3

Subversionで作業するときは、常にsvn updatebeforeを実行しsvn commitます。競合がある場合は、更新時に警告が表示されます。次に、作業ディレクトリで、、、、、およびを取得しfilename.javaます。それらのファイルに基づいて、競合を解決し、解決済みとしてマークし、コミットする方法を見つけます。filename.java.minefilename.java.r10filename.java.r13

私はGitに比較的慣れていないので、上記のワークフローと同等のgitのワークフローを理解しようとしています。どのgitコマンドがマージの競合を引き起こす可能性がありますか?作業ディレクトリに表示される上記のファイルに相当するものはありますか?

4

1 に答える 1

2

マージの競合を引き起こす可能性のあるgitサブコマンドが多数mergeあります。ただし、根本的に異なる方法でマージの競合を処理します。異なるバージョンごとに個別のファイルを作成するのではなく、区切り記号でマークされたセクションを含む単一のファイルを作成して、それらが 3 方向マージ式のどの部分から来たかを示します。したがって、競合するファイルを編集して、不要なセクションと区切り記号を削除するか、どちらの側も正確に正しくない場合は、適切な手動でマージされたハイブリッドに置き換えてから、. 区切り文字は 7 、、および(場合によってはpullfetchmergecherry-pickrebasegitgit addgit commit<=>|、フォーマットが構成されている場合diff3)、次のような文字:

<<<<<<<
stuff from your version of the file
|||||||
stuff from the common ancestor of the two
=======
stuff from the version you're merging in
>>>>>>>

diff3スタイルの競合マーカーを使用していない場合、|区切り文字と共通の祖先行がありません。

git help merge入力して詳細を読むことができます。

于 2012-12-20T19:01:32.587 に答える