我们创建了两个分支,一个开发人员组提交到master分支,另一个开发人员组提交到development分支。在过去的2个月里,我们在两个分支中开发了不同的需求,现在我们想合并这两个分支。我们正在使用SVN,但合并这些类并不容易,因为两个分支中的同一个类会被更改多次,现在合并非常复杂。合并这两个分支最简单的方法是什么?分支历史对我们来说并不重要。我们也可以使用git工具或可视化工具。
noj0wjuj1#
您似乎混淆了合并作为连接历史和合并作为协调更改。这两个大多数时候是同时完成的-当一个人使用他们的VCS执行合并操作时,-这就是为什么他们通常不会在一个人的头脑中被区分开来。但事实上,它们是不同的,你可以利用这一点:1.使用VCS运行正常的合并操作。你会有冲突。这是不可避免的,没关系。1.通过使用合并双方的 either 来解决有问题的文件中的冲突。类似于svn checkout --theirs ^path/to/that/file.java1.采用两个版本的 * 类实现 *,并提出另一个以合理的方式(代码方式)协调它们的版本。1.用实现更新文件。运行测试以确保其按预期工作。1.承诺
svn checkout --theirs ^path/to/that/file.java
jq6vz3qz2#
一般来说,这就是为什么我们必须频繁地拉取更改,以便我们的代码始终与master的代码保持最新。在您的情况下,您必须手动合并更改。如果您希望在master之上增量地应用分支中完成的更改,请执行rebase比如
git checkout your_branch git rebase -i master
字符串这将允许你按时间顺序应用你的提交,所以你可以一个提交一个提交地合并修改,从而减少冲突的数量。
2条答案
按热度按时间noj0wjuj1#
您似乎混淆了合并作为连接历史和合并作为协调更改。这两个大多数时候是同时完成的-当一个人使用他们的VCS执行合并操作时,-这就是为什么他们通常不会在一个人的头脑中被区分开来。
但事实上,它们是不同的,你可以利用这一点:
1.使用VCS运行正常的合并操作。
你会有冲突。这是不可避免的,没关系。
1.通过使用合并双方的 either 来解决有问题的文件中的冲突。
类似于
svn checkout --theirs ^path/to/that/file.java
1.采用两个版本的 * 类实现 *,并提出另一个以合理的方式(代码方式)协调它们的版本。
1.用实现更新文件。运行测试以确保其按预期工作。
1.承诺
jq6vz3qz2#
一般来说,这就是为什么我们必须频繁地拉取更改,以便我们的代码始终与master的代码保持最新。在您的情况下,您必须手动合并更改。
如果您希望在master之上增量地应用分支中完成的更改,请执行rebase
比如
字符串
这将允许你按时间顺序应用你的提交,所以你可以一个提交一个提交地合并修改,从而减少冲突的数量。