我一直在与 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 作为我的活动分支,我做了一个“git rebase trunk”,认为我会将更改从主干拉到feature1 分支。原来我是非常非常错误的。合并所有冲突后,我做了一个git svn dcommit并发现我的更改已应用于主干。
我的第一个问题是我思考过程中的核心错误在哪里?第二个是,在大量阅读和谷歌搜索之后,我看到人们支持拉取、合并和变基。鉴于我想将一个本地分支中应用的更改合并到另一个本地分支,我应该怎么做?这种情况的最佳做法是什么?
谢谢你的帮助。