假设我有分支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
答案 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