在不合并的情况下,使一个Git分支与另一个分支完全相同

时间:2018-11-27 22:20:28

标签: git

考虑以下Git图

master:   A - B - C - D - E*
               \         /
feature:        X - Y - Z

我想在master E 中进行一次新提交,以使 E Z 完全匹配。换句话说,对提交C和D所做的任何更改都将被完全丢弃。但是,我仍然希望保留在主服务器中执行git checkout HEAD~1会检出 D 的属性。

执行git checkout master; git reset --hard feature可使工作目录处于正确的状态(即,所有跟踪的内容都与 Z 的内容完全匹配)。但是,并没有按照我的意愿离开历史。

执行类似git checkout feature -- . 几乎的操作,但是保留在 B C 中创建的所有文件,因此不会总是精确匹配 Z 的状态。

对其他类似问题做其他建议中的建议似乎效率很低,因为它涉及多个不同的检出和合并,并且我需要特别避免,因为此操作将在相当大的存储库中频繁进行。

好像几年前有人问过类似的问题并得到了以下答复:https://stackoverflow.com/a/4912267/927604

这个问题的第二部分是:严重吗?除非我缺少主要知识,否则为什么这样做不明显?

谢谢!

0 个答案:

没有答案