一个分支的多个功能 - 重点是什么?

Bre*_*ako 8 git branch git-checkout git-flow atlassian-sourcetree

在SourceTree上,我有一个名为"develop"的分支.我使用SourceTree Git Flow从"开发"分支创建一个新功能.我对功能分支进行了更改,然后完成功能,更改将返回到我的"开发"分支.

然后我将这些更改推送到遥控器.

现在,这就是我想做的事情.我不得不同时处理两个JIRA任务.所以我从"develop"分支创建了两个功能分支:"develop/feature1"和"develop/feature2".在SourceTree上选中时,我可以通过双击它们来切换这些功能.然后我可以检查两个功能分支的工作副本,但我注意到我添加到一个的文件也被添加到另一个.

我的问题是:

  1. 当我将文件添加到一个功能的工作副本时,为什么它们会出现在另一个功能的工作副本中?

  2. 如果功能分支无法彼此隔离,那么有什么意义呢?

Arj*_*jan 10

git即使您当前分支中有未提交的更改,也允许您切换分支.文件保持未提交状态,如果需要,您可以在另一个分支中提交它们.当你意识到你已经完成feature/feature1了应该开展的工作时,这是很棒的feature/feature2.

一旦提交了更改,它们就不再在分支之间切换.然后,您可以合并或樱桃选择分支之间的更改.

请注意,git如果您有未提交的更改导致要切换到的分支中发生合并冲突,则不允许切换分支,即使您的某个更改位于已在所需分支中更改并提交的文件中也是如此切换到.在这种情况下,您需要先提交,还原或存储您的更改.

如果git不允许您切换分支,并且尝试通过在切换分支之前存储更改来解决这个问题,则应确保将st存储在原始分支中.如果您打开feature/feature1,隐藏更改,然后切换到feature/feature2并在那里存储弹出,您丢失存在feature/feature2但不存在的更改feature/feature1.这很难察觉.