首先,我必须说,在跟踪和管理项目中的更改方面,尤其是在它专门研究的软件开发领域中,使用Git或其高级功能是我的新手。但是,我也可以说我对init
,clone
,push
,pull
,merge
等基础知识和解决方案有足够的了解冲突。
此外,我们正在开发WinForms C#项目,并且在 Axosoft,LLC。的GitKraken
应用程序的帮助下,Git对其进行了跟踪。
因此,我们没有为特定的模块创建分支,而是为特定的开发人员创建分支,因为他们仅单独管理其开发。总结一下:
分支marq
,ja
,ranz
,kim
和kiian
-都是致力于特定模块的开发人员。
分支development
-是一个分支,我们在其中合并所有可用于测试的稳定代码。
但是,为了减轻混乱,因为我不太擅长写我的担忧。让我们集中讨论分支development
,ja
和kiian
。并且我在本地PC上同时管理分支kiian
和分支development
,这基本上意味着我会定期切换到分支development
并从不同分支提取更改。
几天前,分支kiian
将他的更改合并到分支development
中,分支kiian
并没有提取存储在分支development
中的合并更改,因为无需将以前的更改下载到其本地存储库。直到今天,分支kiian
的文件与分支development
的最后合并之前,文件中已有15 + 19个更改。
今天,分支机构ja
决定将其更改合并到分支机构development
。因此我将分支机构从分支机构kiian
切换到分支机构development
(注意,新的更改15 + 19尚未提交到分支机构kiian
的本地存储库中)。尽管我认为我不应该能够成功地切换分支机构(据我了解,除非所有未完成的更改都已提交,否则我应该被允许)。
现在发生的事情是,当我将分支机构ja
合并到分支机构development
时,所有仍在分支机构kiian
上的未决变更(15 + 19)被上演了分支ja
和development
的合并活动。这也提示了分支kiian
修改的3个文件的合并冲突,这些文件也尚未提交。这些相同的更改(15 + 19)也隐藏在分支kiian
上,我不得不再次弹出。
现在我的问题是,归纳起来,分支kiian
上尚未提交的更改如何参与分支development
和{{1}的合并}可能与之无关?
那些相同的更改尚未准备就绪,不应该合并,但是由于某种原因被合并,并且分支ja
的更改的确切副本被保存了。
下面是我们的图表的屏幕截图:
答案 0 :(得分:2)
更改分支时,如果未提交的任何本地更改用于您所在的分支与要切换到的分支之间相同的文件,则将它们保留在沙箱中。因此,当您切换分支时,沙箱中的工作就会随之而来。我希望您看到的冲突来自这种本地变化。本质上,直到提交更改,这些更改才真正在特定分支中出现,而只是在您的沙箱中。