你如何合并分支,以便新的提交在顶部?

时间:2012-08-30 22:09:56

标签: git

假设我有分支A。现在我从B创建新分支A并进行一些提交。假设在此期间A也获得了一堆提交。有没有办法将这些新提交合并到B,以便我在B上提交的提交将是顶级提交?

举例说明:

A -> a1 -> a2 -- B created here -- -> a3 -> a4
                 B -> a1 -> a2 -> b1 -> b2

如何合并,B最终会像

一样
 B -> a1 -> a2 -> a3 -> a4 -> b1 -> b2

2 个答案:

答案 0 :(得分:4)

您想要rebase,而不是merge

B时,请执行

git rebase A

这不会影响A分支,但会重写B分支的近期历史记录。

事先,你有

... -> a1 -> a2 -> a3 -> a4 -> A
              \--> b1 -> b2 -> B

之后你会:

... -> a1 -> a2 -> a3 -> a4 -> A
                          \--> b1 -> b2 -> B

答案 1 :(得分:1)

使用git rebase

我的典型工作流程包括:在分支机构中工作并合并到主服务器中:

git status # Make sure I am in the master branch, "git checkout master" if not
git pull
git checkout -b new_branch # New branch called new_branch
# do the work, tests, etc.
git add .
git commit
git checkout master
git pull # Get the very latest master
git checkout my_branch
git rebase master
git checkout master
git merge my_branch  
git push master