私は git/git-svn の学習曲線と戦ってきましたが、昨夜、その学習曲線の一部として、非常に悪いことをしました。その後、修正しましたが、エラーを自分のやり方で理解したいと思っています。
トランクとブランチのクローンを作成したsvnリポジトリがあります(タグは扱っていないため無視しました)。git を使用して、現在作業する必要があるブランチごとにローカル ブランチを作成しました。
$ git checkout -b trunk svn/trunk
$ git checkout -b feature1 svn/branches/development/feature1
$ git checkout -b maint svn/branches/maintenance/previous-version
私は feature1 をアクティブなブランチにし、数日間引き離される前にいくつかの変更を加えました。昨日、トランクに加えられた変更を統合して、最新かつ最高のものを使用できるようにしたいと考えていました。私が行ったのは、最初にgit svn rebaseを介してすべてのブランチを完全に更新することでした(feature1 ブランチでは誰も作業していませんでした)。私の svn リポジトリからすべてを最新の状態にして、リベースを試みました。
アクティブなブランチとして feature1 を使用して、トランクからの変更をfeature1 ブランチにプルすることを考えて、「git rebase トランク」を実行しました。私は非常に、非常に間違っていたことが判明しました。すべての競合をマージした後、git svn dcommitを実行したところ、トランクに変更が適用されていることがわかりました。
私の最初の質問は、私の思考プロセスのどこに核心的な誤りがあったかということです。2 つ目は、よく読んでグーグルで調べた結果、人々がプル、マージ、リベースを支持しているのを目にすることです。あるローカル ブランチに適用された変更を別のローカル ブランチにマージしたい場合、どうすればよいでしょうか? このシナリオのベスト プラクティスは何ですか?
ご協力いただきありがとうございます。