我希望在git rebase
上了解更多信息。
假设我有这个工作流程,git rebase
会在这里有用吗?
如果是这样,那么将提交X到Z(假设不使用cherry-pick)从 MASTER
迁移到 BRANCH
的命令是什么。
答案 0 :(得分:3)
信不信由你,你实际上在master
上重新定位branch
!
以下是您可以用来实现此目的的命令:
git checkout master # checkout the master branch
git checkout -b newbranch # create new branch based on master
git rebase branch # rebase on 'branch'
请记住,我创建了一个名为newbranch
的新分支,它将以您希望的方式显示。由您决定使用原始branch
的内容取决于您。现在newbranch
将如下所示:
A--B--C--D--X--Y--Z
更典型的工作流程是将master
的新变化引入branch
,通过在前者上重新定义后者,即:
git checkout branch
git rebase master
这会使branch
看起来像这样:
A--X--Y--Z--B--C--D
答案 1 :(得分:2)
如果您执行了git rebase master
(当您检查了分支机构时),则重播 Branch
之上master
的提交:
A--x--y--z--b'--c'--d' (Branch)
|
(master)
这有助于确保Branch
的本地提交仍然与master
的最新演变兼容。
确保您还没有推送Branch
,因为它会更改其历史记录。
请参阅" git workflow and rebase vs merge questions"。