将分支合并到主分支,并包括所有更改吗?

8 浏览
0 Comments

将分支合并到主分支,并包括所有更改吗?

有时候我会在一个分支上工作,然后想要将该分支上的所有更改合并到我的主分支中,使得主分支基本上成为我刚刚工作的那个分支的克隆。有没有一种简单的方法来更新主分支,使得所有来自分支的更改都合并到主分支中?我希望主分支最终成为分支的完全克隆。通常我会将冲突逐个合并到主分支中,但是否有更简单的方法来做这个?感谢您的时间。

0
0 Comments

问题的出现原因是希望将一个分支的所有更改合并到主分支(master)中。解决方法有以下几种:

1. 使用ours合并策略,保留历史记录:

git checkout branch
git merge -s ours master

2. 如果不关心主分支(master)的历史记录,可以进行重置:

git checkout master
git reset --hard branch

(这将丢弃所有本地更改,并使主分支的提交无法访问!)

3. 如果主分支(master)中没有与分支中不同的提交,可以将主分支快进到分支:

git checkout branch
git merge master
# 或者 `git merge --ff-only master` 只允许快进合并

最后一个例子将主分支(master)合并到分支中,而不是相反的方向,这是符合OP的要求的。同时,应该使用--ff-only标志。

以上是解决将一个分支的所有更改合并到主分支(master)的问题的方法。

0
0 Comments

问题的出现原因:

这个问题的出现是因为需要将一个分支的所有更改合并到主分支(master),并且希望最终的主分支包含所有这些更改。

解决方法:

使用git reset --hard命令,加上你希望成为新主分支头部的提交的ID,这应该是解决方法。

需要注意的是,使用这种方法会丢失主分支上的所有与该分支不同的提交(你可以找回这些提交,但它们将不再属于一个分支)。

参考链接:

更多关于git reset --hard命令的信息,请参考http://git-scm.com/2011/07/11/reset.html

另外,可以在How to replace master branch in git, entirely, from another branch?中找到解决方案。根据所需的结果,我提到的重置方法可能是解决方法之一。

备注:

回答中提到的问题有些不清楚,"clone of the branch"技术上意味着一个单独的副本。在这里,使用克隆这个词是一个不合适的选择。我试图表达的是分支的一个确切版本。

0