需要Git rebase参数上下文解释
git rebase通常用于某个分支的上下文中。例如,如果我想根据最新提交将要素分支的基础移动到主分支的顶部,教程会说:需要Git rebase参数上下文解释,git,github,Git,Github,git rebase通常用于某个分支的上下文中。例如,如果我想根据最新提交将要素分支的基础移动到主分支的顶部,教程会说: git checkout feature git rebase master 在类似的教程之后,有很多问题。如何在不签出的情况下执行相同的操作。如何使用-on选项执行相同的操作。重新设置基址和重新设置基址之间的区别是什么。我可以传递一系列提交,还是必须传递整个分支?等等 我已经阅读手册页好几次了,但仍然有很大的差距 所以主要的问题是:git如何在不同的场景中解析args,
git checkout feature
git rebase master
在类似的教程之后,有很多问题。如何在不签出的情况下执行相同的操作。如何使用-on选项执行相同的操作。重新设置基址和重新设置基址之间的区别是什么。我可以传递一系列提交,还是必须传递整个分支?等等
我已经阅读手册页好几次了,但仍然有很大的差距
所以主要的问题是:git如何在不同的场景中解析args,我应该如何在头脑中解释/想象它们?例如:
git rebase master
git rebase feature master
git rebase --onto master feature
git rebase HEAD~4 HEAD~2
git rebase --onto HEAD~4 HEAD~2
假设我们有以下回购协议:
Z -- W (HEAD, test-branch*)
A -- B -- C -- D -- E (master)
\
1 -- 2 -- 3 (feature)
test-branch is checked out.
git rebase master在master之上对当前分支进行重定,这意味着master已签出,当前分支将重置为master,其提交将在master之上重定。
考虑到当前分支是测试分支:
A -- B -- C -- D -- E -- Z' -- W' (test-branch)
(master)
git rebase feature master在feature稀有的基础上重放master提交,最佳实践是做相反的事情
即:
A -- B
\
1 -- 2 -- 3 -- C' -- D' -- E' (master)
(feature)
git rebase-on-master特性将在特性之后将所有提交移动到新的基本主机之上的当前分支。
因为特性和测试分支不相关,所以不会移动任何提交
git rebase HEAD~4 HEAD~2将当前分支重置为@~2
对于像Z-Y-X-W这样的测试分支,这意味着Z-Y
git rebase-on HEAD~4 HEAD~2将从当前分支中删除@~3和@~2,因为它会重放从@~2之后的所有提交,即@~1和@到新的base@~4。
完整的rebase命令如下所示
git rebase --onto <onto> <upstream> <branch-to-rebase>
如果git重新设置主主题的基础,它将重新设置该主题与主主题不相同的所有提交的基础。所有介入的分支头都将被忽略。也就是E、F、G、H、I和J。由于on默认为上游,所以它将把它们置于master上。你会得到这个的
A--B--C--D master
\ \
\ E'-F'-G'-H'-I'-J' topic
\
E--F--G next
如果您只想从下一个主题提交,该怎么办?这就是-on变得有用的地方。告诉Git上游是下一个,但您希望在master上重新设置基础。因此,运行git-rebase-to-master下一个主题。这将只选择H、I和J
A--B--C--D master
\ \
\ H'-I'-J' topic
\
E--F--G next
非常好!我需要仔细阅读。你能解释一下“上游”在这方面的含义吗?我试着翻译这个词,但没有得到任何有用的东西。@TimurFayzrakhmanov上游是分支的来源。逆流而上就像逆流而上。这里的电流是时间。如果你开始回顾分支的历史,走向另一个分支,你就是在逆流而上。在我的例子中,master是主题的上游。这对rebase意味着Git将把分支中所有不在上游的更改都放在rebase之上。不幸的是@VonC,但我没有从第二个示例开始理解您的想法。我无法想象没有模式会发生什么,如果您能给出第一个示例中的模式,我将不胜感激。@Timurfayzakhmanov我只为第二个示例添加了一个图表。
A--B--C--D master
\ \
\ H'-I'-J' topic
\
E--F--G next