Git 如何在具有依赖关系的两个要素分支/文件夹之间移动变更集?

Git 如何在具有依赖关系的两个要素分支/文件夹之间移动变更集?,git,svn,dependencies,branch,Git,Svn,Dependencies,Branch,假设我们正在研究两个特性:特性A和特性B。特性B取决于特性A 我们完成了特性A,并在将其签入trunk之前将其提交给codereview。在等待同事/合作者的反馈时,我们希望开始处理功能B。因此,我们创建了另一个文件夹或另一个分支,对功能A进行了更改 但是当功能a上的codereview反馈说我们需要更改一些代码时,我们必须同时更改功能a文件夹/分支和功能B文件夹/分支。这很容易出现人为错误 git或svn是否有办法确保文件夹/分支A上的任何更改也将移植到文件夹/分支B,而无需将其签入主干或手动

假设我们正在研究两个特性:特性A和特性B。特性B取决于特性A

我们完成了特性A,并在将其签入trunk之前将其提交给codereview。在等待同事/合作者的反馈时,我们希望开始处理功能B。因此,我们创建了另一个文件夹或另一个分支,对功能A进行了更改

但是当功能a上的codereview反馈说我们需要更改一些代码时,我们必须同时更改功能a文件夹/分支和功能B文件夹/分支。这很容易出现人为错误


git或svn是否有办法确保文件夹/分支A上的任何更改也将移植到文件夹/分支B,而无需将其签入主干或手动移动更改?

如果这些更改是相关的,您应该只跟踪功能B中的后续更改。将功能B链接到问题/错误跟踪器中的功能A。不值得花时间对功能A进行分类。请使用注释说明进行更正的原因。

svn:svn中文件夹的外部,svn和Git的功能分支和合并分支(更好)

Git或svn?这是假设吗?这个问题准确地总结了为什么您首先要使用git或svn。是的,你能做到。下面是git的使用方法

我会让你去研究rebase v。将工作流与git合并,但我的团队就是这样做的……我们一直都在这样做……(co=checkout)

以后,您可以始终使用功能A的最新更改更新功能B

co featureA
pull --rebase
co featureB
pull --rebase
#update featureB with changes in featureA
rebase featureA
#resolve any conflicts
trunk/master不会受到任何影响,发布后,您可以通过签出master并重新设置featureB的基址,然后将新的全功能master推送到master,用最新的featureB更新master。这种开发周期使master保持干净(随时准备部署),同时允许您在多个分支上并发开发,并根据需要提供尽可能多的依赖项。您永远不必重复代码更改(如果您认为这样做,则需要重新考虑您的工作流程),但当然您可能必须解决合并冲突(任何不同的代码合并都不可避免)


谢谢,这个答案当场就对了。我在问svn和git。似乎使用git更容易实现。在我的工作场所,我们使用svn,但一些非常叛逆的人使用git-svn。当然,使用Subversion会更容易
co featureA
pull --rebase
co featureB
pull --rebase
#update featureB with changes in featureA
rebase featureA
#resolve any conflicts
co master
rebase featureB
push origin master