2011-06-20 22 views
0

私たちは当社の中央SVNリポジトリを持っています。会社のネットワークに接続していないときにノートパソコンでgit-svnを使用してレポを使用することができます。 今私は出張の3週間で、地元のGitのレポに多大な努力をしました。 SVNレポには多くのコミットもありました。 "SVN Rebase"を試してみると、私のGitチェンジセットのそれぞれのコンフリクトを編集する必要があります。私がしたいのは、すべてのローカル変更を一度にコミットしてから、一度だけコンフリクトを編集することです。git-svnをSVNリポジトリに変更する

私はGitにかなり新しく、これがどうやって正しく行われたのか、これが最善の方法であるのか分かりません。 私はWindows上でTortoiseGitを使用していますので、これまではコマンドラインを気にしませんでした。

ありがとうございました。

答えて

0

解決方法を含む新しいコミットを使用して、新しいツリーに入ったら、コンフリクト解決を完了したらgit-svn rebaseに移動します。未来のgit-svn rebaseは、同じ問題に遭遇することはありません(繰り返しのマージと違い、rerereが便利です)。

"すべてのローカル変更を一度にコミット"すると、すべてのコミットをgit(およびそれ以降のSVN)で1回のコミットに変換したい場合は、git rebase -iを使用してすべてのコミットを単一のコミット。既にdcommitのSVNに送信されたリビジョンは、履歴を書き換えているので、その中にはrebase -iを含めないでください。 git-svn rebaseの場合は、SVNのみを使用していて、svn updateを行った場合と同じように、コンフリクトを解消する必要があります。

+0

私の問題は、私が "SVN rebase"しようとすると、私は15 gitコミットがあります。 1つのSVNコミットにそれらをスカッシュしようとすると、私はまだ1つのgitコミットすべてでコンフリクトを編集する必要があります。私が期待していたのは、私の最新のgitコミットだけがSVNリポジトリと比較されるだろう。 – Simon

+0

@Simonあなたが「1つのSVNコミットにそれらを押しつぶす」と言うとき、あなたは 'git-svn rebase'を実行する前に1つの* git * commitを意味しますか?もしそうなら、あなたは多くの対立を得るかもしれませんが、それはすべて1つのリビジョンになります。 –

+0

すべての変更はすでにローカルのgitリポジトリにコミットされています。私は、 "SVN Rebase"をスカッシュで使用すると(少なくともTortoiseGitは私にチェックボックスを表示します:-)、私はSVNリポジトリにコミットするだけです。 – Simon

関連する問題