Git尽可能容易地重做一个糟糕的合并
好了,我刚刚完成了这个有趣的git潜水 两个开发人员共享一个源代码。 合并非常糟糕,从后续提交中删除了大约一周的工作。 开发人员持续工作了一天才意识到情况有多糟,并在合并点和HEAD之间进行了几次提交 解决这个问题最简单的方法是什么 我的看法是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 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提到的那样发布一棵树,那么给出更具体的说明就更容易了。