0

残念ながら、職場で SVN リポジトリを使用する必要があります。これは git-svn で行います。さて、変更を加えた後、それらと私の git-svn "pull" エイリアスをコミットしました。

!git svn fetch && git svn rebase -l

解決したくないマージ競合がある場合、私の本能は次のようにします。

git checkout --theirs conflicting_file
git add conflicting_file
git rebase --continue

しかし、今では、conflicting_file他の開発者からの を取得する代わりに、conflicting_file以前は私のインデックスにあった が存在するようです。

ここで正確に何が起こり、これを行う正しい方法は何ですか?

4

1 に答える 1

2

@poke は正しかったと思います。「彼らの」と「私たちの」は、git の動作に対して頭の中で入れ替わっています。svn rebase を実行すると、現在のブランチ ("ours") は svn ブランチの複製であり、マージ/リベースされている変更 ("theirs") はローカルで行ったものです。同じ目的で git-svn を使用するときは、自分のものを別の git ブランチに置き、「svn dcommit」を実行する準備ができたときにのみ、それを svn ブランチに取り込みます。そうすることで、彼ら/私たちの問題が頭の中でより明確になり、準備が整うまで対立に対処する必要がなくなります.

于 2012-11-08T15:40:34.703 に答える