0.现在有两个分支 master 和 server
1.我在 master 分支执行,git rebase server 和 git rebase server master 结果一致,都仅仅只影响到了 master 分支,server 分支无变化,到这里我觉得没什么问题。
退到 0
这一次我在 master 分支执行 git rebase master server,server 分支按预期的结果发生了变化,但是我疑惑的是: 为什么 master 分支也发生了跟 server 分支一样的变化?(两个分支变得一模一样了)
按理说 master 分支不应该什么也不变吗?
按我的理解 git rebase master server = git checkout server & git rebase master
其实也就是:在 server 分支 ,git rebase master server = git rebase master
那么:在 master 分支 git rebase master server = ?,如果还是 = git rebase master
那么在 master 分支执行完毕后不应该 server 和 master 分支都不发生变化嘛?(相当于 master 分支执行 git rebase master )
1
wangyzj 2019-12-03 19:05:47 +08:00
master <------ master <------ server
|_________________________↑ 一种递归的赶脚 |
2
zunceng 2019-12-03 19:16:57 +08:00
git rebase [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
[<upstream> [<branch>]] If <branch> is specified, git rebase will perform an automatic git checkout <branch> before doing anything else. Otherwise it remains on the current branch. If <upstream> is not specified, the upstream configured in branch.<name>.remote and branch.<name>.merge options will be used (see git-config(1) for details) and the --fork-point option is assumed. If you are currently not on any branch or if the current branch does not have a configured upstream, the rebase will abort. 我读了文档我懂了 你呢 |
3
caneman OP 这是 git help rebase 里面的文档,已经看过了,我上面 git rebase master server = git checkout server & git rebase master 就是从这里看到的,是我理解错了吗?能否不吝赐教?谢谢~
|
4
zunceng 2019-12-03 19:58:36 +08:00
rebase 的 upstream 都是远程分支 你操作多了弄混了吧
|
5
caneman OP @zunceng 他这个写的是 master 和 origin master 是等同的吧?我在 git 手册里面 关于 rebase 的说明里面 看到了 git rebase master server 这种用法,可以在不切换分支的情况下对另一个分支进行 rebase 操作。
我刚刚本地不能复现,可能是 git 版本的问题,我写题目附录里面了。 |
6
niming007zh 2019-12-03 20:25:47 +08:00
我跟你讲,git 的 1.6,1.7,1.8.....版本之前都有不少差异,甚至命令都变了。
遇事不决,升级 git。 |
7
xingheng 2019-12-03 21:57:21 +08:00 via iPhone
从来都是 git rebase branch1 branch2 这种格式,无视操作前当前分支是什么,记住 branch1 会垫底,branch2 会跑上面去就行了
|
8
xingheng 2019-12-03 21:57:21 +08:00 via iPhone
从来都是 git rebase branch1 branch2 这种格式,无视操作前当前分支是什么,记住 branch1 会垫底,branch2 会跑上面去就行了
|