Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 如何修复已重设基础的分支中的历史记录,强制推送';d、 并被并入另一个人';那是本地的吗?两次?_Git_Git Rebase_Git Merge Conflict - Fatal编程技术网

Git 如何修复已重设基础的分支中的历史记录,强制推送';d、 并被并入另一个人';那是本地的吗?两次?

Git 如何修复已重设基础的分支中的历史记录,强制推送';d、 并被并入另一个人';那是本地的吗?两次?,git,git-rebase,git-merge-conflict,Git,Git Rebase,Git Merge Conflict,在我们的组织中,我们git-rebase我们的分支机构。我们定期重新设置master的基础以保持最新,并git push--force with lease,然后让任何其他开发人员知道 开发人员A与开发人员B在一个分支上合作。开发人员B重新定位到master并强制推送分支 开发人员A犯了一个错误,继续工作,当他试图推动时,看起来他遇到了冲突,将重新调整的分支合并到了他的本地分支中,然后推动 没人注意到,几天后他又这样做了 因此,现在git历史记录包含两到三次相同的提交,并且重新设置到master

在我们的组织中,我们
git-rebase
我们的分支机构。我们定期重新设置
master
的基础以保持最新,并
git push--force with lease
,然后让任何其他开发人员知道

开发人员A与开发人员B在一个分支上合作。开发人员B重新定位到master并强制推送分支

开发人员A犯了一个错误,继续工作,当他试图推动时,看起来他遇到了冲突,将重新调整的分支合并到了他的本地分支中,然后推动

没人注意到,几天后他又这样做了

因此,现在git历史记录包含两到三次相同的提交,并且重新设置到
master
上是一场灾难

有办法解决这个问题吗

最好从
master
创建一个新的分支,然后选择不重复的提交?在重复的情况下,选择哪个提交重要吗

最好从master和cherry中创建一个新的分支来选择非重复提交吗

“最佳”总是很棘手,但这是一个好方法

在重复的情况下,选择哪个提交重要吗

如果它们确实是重复的,则不会。但是如果它们做了一些稍有不同的事情,例如,如果其中一个是来自具有合并冲突的重基或樱桃拾取的副本,并且是手动解决的,则它们可能“基本相同,但稍有不同”,那么这将很重要


构建一个全新分支的好处在于,您最终可以验证它是否执行了它应该执行的任何操作,并且它的最终提交与当前分支的最终提交之间的差异只是您希望的不同之处。同时,原始的提交系列很容易获得。

也许
git-rebase-i
能帮上忙吗?另外,有两个开发人员在同一个分支上工作,并且两人同时对它进行重定基址,这听起来像是自找麻烦。当你独自一人在一个没有其他人使用的分支上工作时,我觉得重新定基确实是一件应该做的事情。谢谢你的提示!旁白——一位关于这个问题的评论人士说,不应该在多开发者团队中进行重定基础,但我的理解是,这仍然是相对普遍的做法。你有什么意见吗?是否(以及何时)重新设定基准实际上是所有可能期望分支名称以某种特定方式表现的个人之间的一致问题。如果每个人都同意分支X被重定基址,并且理解如何(以及何时)处理它,那就好了。你的问题源于两个人不同意或误解。“永远不要重新设定共享名称的基础”这条总规则只是一种确保你唯一需要同意的人是你自己的方法。:-)的确,谢谢你。我的工程师已经意识到了这一点(并且大概知道如何做到这一点),但有些地方出了问题。谢谢