我们使用git完成visual studio 2015。我们有一个中心存储库(gitlab),只有一个分支“master”。两个人克隆了存储库。
第一个人在解决方案中添加了“test-new-file-v.txt”文件。它更改了解决方案文件(.sln),并更改了字符串“visualstudioversion=14.0.23107.0”。然后他在本地存储库中提交,然后在中央存储库(gitlab)中推送此提交。之后,我们在中央存储库(gitlab)中看到了此提交:
第二个人在解决方案中添加了“testgit.txt”文件。它也更改了解决方案文件(.sln),但没有更改字符串visualstudioversion。然后他想在推之前拉中央存储库(gitlab)。
第二个人有冲突。他通过visual studio 2015合并,发现不同的人在更改“visualstudioversion=14.0.23107.0”上的“visualstudioversion=14.0.24720.0”时犯了错误。第二个人想保持字符串“visualstudioversion=14.0.24720.0”不变。他为此字符串选择了本地状态“visualstudioversion=14.0.24720.0”,并进行了提交合并。之后,他将这两个提交推送到中央存储库(gitlab)。
之后,我们观察了中央存储库(Gitlab)中的历史和变化,并看到了第二个人的提交合并:
我们在中央存储库(gitlab)解决方案文件中看到包含字符串“visualstudioversion=14.0.24720.0”,这是正确的,但是我们没有看到这个字符串替换字符串“visualstudioversion=14.0.23107.0”,因为第一个提交者的提交包含这个字符串,并且在合并提交之前。
我的问题:
这是正确的行为吗?我希望在合并提交中看到字符串“visualstudioversion=14.0.23107.0”更改为“visualstudioversion=14.0.24720.0”。
我怎样才能达到我能看到所有变化的行为?
最佳答案
我假设他在主分支上提交之前没有收到您的更改,所以在本地他可能没有将要推送的更改。这将防止在分支过期时还原代码。
我建议不要对master进行更改。创建单独的本地分支并将请求拉入master。
考虑使用git分支策略来保持分支的有序性。
Git Branching Model