“git rebase origin”与“git rebase origin / master”
我没有得到git rebase origin
和git rebase origin/master
的区别。 在我的情况下,我克隆了一个git仓库两次。 在第一个克隆中,我必须使用git rebase origin
而在另一个克隆中,我必须使用git rebase origin/master
。
一个例子: http : //paste.dennis-boldt.de/2011/05/11/git-rebase
这是一个更好的select:
git remote set-head -a origin
从文档:
用-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以来); 不知道我错过了!
git rebase origin
意味着“源自追踪分支的origin
”,而git rebase origin/master
意味着“来自origin
分支master
的origin
”
您必须在~/Desktop/test
拥有一个跟踪分支,这意味着git rebase origin
知道哪个分支将与rebase绑定。 如果没有跟踪分支存在(在~/Desktop/fallstudie
的情况下),git不知道它必须采用哪个分支,并失败。
为了解决这个问题,你可以使现有的master
分支跟踪origin/master
git branch --set-upstream master origin/master
您可以在[.git \ refs \ remotes \ origin]下创build名为“HEAD”的新文件,并将内容“ref:refs / remotes / origin / master”添加到该文件中。 这应该可以解决你的问题。
看来,从一个空的回购克隆将导致这一点。 也许空的回购没有HEAD,因为没有提交对象存在。
你可以使用
git log –remotes –branches –oneline –decorate
看到每个存储库的区别,而“问题”一个不具有“起源/头”
编辑:使用命令行的方式
你也可以使用git命令行来做到这一点,他们有相同的结果
git symbolic-ref refs / remotes / origin / HEAD refs / remotes / origin / master