Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git提交者应该如何避免覆盖其他人;变化?_Git_Tortoisegit - Fatal编程技术网

Git提交者应该如何避免覆盖其他人;变化?

Git提交者应该如何避免覆盖其他人;变化?,git,tortoisegit,Git,Tortoisegit,我在BitBucket上为一个有5个提交者的项目创建了一个Git存储库。我们所有人都是Git新手,都在使用Ortoisegit。我们只有主分支,我们想要的只是一个简单的“类似SVN”的工作流:获取其他人的更改,自己进行一些更改,让其他人看到您的更改 一个特定的提交人似乎在Git上遇到了很多麻烦,他已经多次覆盖了其他人的更改。消除伤害非常困难,因为我对Git也不太了解。我不能看着他使用Git,所以我不知道他到底在做什么,但我想告诉他:以下是如何确保这种情况不会发生。对于SVN来说,这将是:在提交之

我在BitBucket上为一个有5个提交者的项目创建了一个Git存储库。我们所有人都是Git新手,都在使用Ortoisegit。我们只有主分支,我们想要的只是一个简单的“类似SVN”的工作流:获取其他人的更改,自己进行一些更改,让其他人看到您的更改


一个特定的提交人似乎在Git上遇到了很多麻烦,他已经多次覆盖了其他人的更改。消除伤害非常困难,因为我对Git也不太了解。我不能看着他使用Git,所以我不知道他到底在做什么,但我想告诉他:以下是如何确保这种情况不会发生。对于SVN来说,这将是:在提交之前,总是先更新,合并您的更改并测试所有内容是否仍然有效。对于Git,我应该告诉他什么?

如果你打算使用Git,你应该使用Git提供的强大功能。。。树枝


假设您不想让工作流变得过于复杂,只需告诉开发人员在提交之前,始终
git pull--rebase
。简而言之,这将:a)保存本地更改,b)拉远程更改(即其他人提交和推动的更改),c)将本地更改重放到新的代码库。

让每个人从“团队”源repo中拉,并将他们的工作推到自己的repo中。然后,让集成经理从所有单个回购中提取,将其合并在一起,并将其推送到团队回购中。这将确保没有人覆盖其他人的工作。

您需要了解他是如何过度编写更改的。覆盖更改的一种方法是强制推送。另一种方法是,在解决冲突时,他要么将冲突解决搞砸,要么只将自己的文件提交(请参阅和。另外,虽然Git允许您使用SVN样式的工作流,但如果每个人都使用Git,那么您最好使用Git流或GitHub流工作流。此外,听起来您的团队中需要一个对Git非常了解的人,能够帮助您摆脱这种情况。我强烈建议您阅读。哦,是的,其他使用git时不应该做的事情可能会导致问题——这些都涉及到重写公共/共享提交/历史:修改提交、重定提交日期、重定提交日期等。Pro git推荐的章节:第1-3、6-6.5章。了解如何重定基础。git只是一个提交树,带有可移动的Post注释(分支、引用、标记)附件。谢谢。我会尽力找出发生了什么(如果它再次发生),但这并不容易。是的,这可能是一个错误(我的!)在团队中没有人知道的情况下使用Git。我严重高估了它的可用性。谢谢,--rebase看起来很有希望。基于它,看起来这会让我们接近SVN行为。这是一个想法,但可能是最后的手段。集成经理(我)他不想把所有的时间都花在合并每个人的更改上。@EM-啊,那么你必须教开发人员良好的合并和推送礼仪。。。。