我是Git的新手,我使用sourcetree作为客户端。
我知道在Git中,两个开发人员一次在同一个分支上工作,因为他们拥有远程分支的本地副本。
所以这是一个场景:
A和B正在开发分支功能/ release1.0
提交本地分支的代码。现在B提交代码并将其推送到远程分支。现在A将不得不推动他的变化以及由B做出的拉动变化。
那么在这种情况下A会做什么?
在这种情况下,A应首先将B的更改拉下来,确保一切正常,提交和推送。
一般来说,我们(我的团队)并不像那样工作。
当我们有两个开发人员密切关注某个功能时,我们会在不同的分支上工作并合并到一个共享功能分支中。
这样做的好处之一是您可以提交并推动自己的计划,这意味着您可以使代码工作而不必担心其他开发人员的更改,并且您的代码可以更快地将其发送到服务器。也就是说,它在某个地方,而不是你自己的机器,某个地方可能已备份。
首先必须git pull(可能需要一些合并)而不是推送代码。
如果A试图首先推送他的代码,git将告诉远程和本地分支已经分歧并指示开发人员首先提取代码。
如果您注意git commit错误消息(以及git状态消息),您将始终知道该怎么做。
正如你所说,在推动她的改变之前,A必须从B(git pull)获得更改。她可能必须处理一些冲突,这些冲突应该在推送代码之前在本地解决。
除此之外,你应该重新考虑你的分支机构以避免这种冲突。是否有可能在不同的分支机构工作?例如,通过重新定义任务,可以更细粒度。
而且,至少对我来说,这个名字或分支feature/release-1.0
是奇怪的。看起来有功能基础的发布,这样的东西。看看http://nvie.com/posts/a-successful-git-branching-model/。查看如何从开发分支提供发布分支,并且此分支从功能分支接收提交。
希望能帮助到你!