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
Git尽可能容易地重做一个糟糕的合并_Git - Fatal编程技术网

Git尽可能容易地重做一个糟糕的合并

Git尽可能容易地重做一个糟糕的合并,git,Git,好了,我刚刚完成了这个有趣的git潜水 两个开发人员共享一个源代码。 合并非常糟糕,从后续提交中删除了大约一周的工作。 开发人员持续工作了一天才意识到情况有多糟,并在合并点和HEAD之间进行了几次提交 解决这个问题最简单的方法是什么 我的看法是 git checkout develop_branch git branch develop_branch_old git checkout -b tmp_branch git branch -f develop_branch commit_that_w

好了,我刚刚完成了这个有趣的git潜水

两个开发人员共享一个源代码。 合并非常糟糕,从后续提交中删除了大约一周的工作。 开发人员持续工作了一天才意识到情况有多糟,并在合并点和HEAD之间进行了几次提交

解决这个问题最简单的方法是什么

我的看法是

git checkout develop_branch
git branch develop_branch_old
git checkout -b tmp_branch
git branch -f develop_branch commit_that_was_develop_branch_before_the_unfortunate_merge
git push origin --delete develop_branch
git checkout develop_branch
git merge feature_branch_x
//resolve merge conflicts in a more... uhm... controlled manner
git push origin develop_branch
git push origin develop_branch_old
git branch -D tm_branch
告诉开发人员克隆出一个新的副本,并在过去24小时的更改上进行复制粘贴,然后扔掉旧的repo,继续在新的副本中工作,然后,一旦一切都解决了

git push origin --delete develop_branch_old
所以我有很多问题

这能做得容易些吗? 这是一种明智的做法吗? 如果他们继续工作一周或一个月呢?那么错误后的作品就不容易复制粘贴了 如果有大量开发人员,我可以在不删除原始分支的情况下修复此问题吗?
请附上他们在结果中得到的提交树的示例。这将更容易理解情况。“解决”这个问题是什么意思?是否要撤消合并或。。?不太清楚。24小时内完成了多少工作?Git很乐意让您跨分支签出文件,如果您执行Git checkout-p之类的操作,它甚至可以让您选择要签出文件的哪些部分。在这和git cherry pick之间,您应该能够在合并之前将develop_branch重置为,并将您关心的所有更改带回其中。如果你像Max提到的那样发布一棵树,那么给出更具体的说明就更容易了。