"git rebase origin"与"git rebase origin/master"

Den*_*nis 54 git git-rebase

我不明白之间的差别git rebase origingit rebase origin/master.在我的情况下,我克隆了两次git存储库.在git rebase origin我必须使用的第一个克隆中,我必须使用另一个克隆git rebase origin/master.

一个例子:http://paste.dennis-boldt.de/2011/05/11/git-rebase

Cha*_*esB 68

git rebase origin意思是"从追踪分支origin"的git rebase origin/master"反叛",同时意味着"从分支机构master的反叛origin"

您必须有一个跟踪分支~/Desktop/test,这意味着git rebase origin知道要使用哪个分支origin.如果不存在跟踪分支(在这种情况下~/Desktop/fallstudie),git不知道origin它必须采用哪个分支,并且失败.

要解决此问题,您可以使用以下命令创建分支轨道origin/master:

git branch --set-upstream-to=origin/master 
Run Code Online (Sandbox Code Playgroud)

或者,如果master不是当前签出的分支:

git branch --set-upstream-to=origin/master master
Run Code Online (Sandbox Code Playgroud)


Cas*_*bel 20

这是一个更好的选择:

git remote set-head -a origin
Run Code Online (Sandbox Code Playgroud)

从文档:

使用-a,查询远程以确定其HEAD,然后将$ GIT_DIR/remotes // HEAD设置为同一分支.例如,如果远程HEAD指向下一个,"git remote set-head origin -a"将$ GIT_DIR/refs/remotes/origin/HEAD设置为refs/remotes/origin/next.只有当refs/remotes/origin/next已经存在时,这才有效; 如果不是,它必须先取出.

这实际上已经存在了很长一段时间(自v1.6.3起); 不确定我是怎么错过它的!

  • 我从来没有回答过:我现在正在使用它,它运作良好! (3认同)