首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"git rebase origin“与”git rebase origin/master“

"git rebase origin“与”git rebase origin/master“
EN

Stack Overflow用户
提问于 2011-05-11 19:39:14
回答 3查看 120.2K关注 0票数 63

我不明白git rebase origingit rebase origin/master之间的区别。在我的例子中,我克隆了两次git存储库。在第一个克隆中,我必须使用git rebase origin,在另一个克隆中,我必须使用git rebase origin/master

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-11 21:02:42

git rebase origin的意思是“从origin的跟踪分支重新建立基础”,而git rebase origin/master的意思是“从origin的分支master重新建立基础”。

您必须在~/Desktop/test中有一个跟踪分支,这意味着git rebase origin知道使用origin的哪个分支进行rebase。如果不存在跟踪分支(在~/Desktop/fallstudie的情况下),git不知道它必须采用origin的哪个分支,因此失败。

要解决此问题,您可以使用以下命令使分支跟踪origin/master

代码语言:javascript
运行
复制
git branch --set-upstream-to=origin/master 

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

代码语言:javascript
运行
复制
git branch --set-upstream-to=origin/master master
票数 75
EN

Stack Overflow用户

发布于 2011-05-13 08:09:23

这里有一个更好的选择:

代码语言:javascript
运行
复制
git remote set-head -a origin

从文档中:

如果使用-a,则查询远程数据库以确定其头部,然后将$GIT_DIR/remotes//头部设置为同一分支。例如,如果远程头部指向next,"git remote set-head origin -a“会将$GIT_DIR/refs/remotes/origin/HEAD设置为refs/remotes/origin/next。这只在refs/remotes/origin/next已经存在的情况下才有效;如果不存在,则必须先获取它。

这实际上已经存在很长一段时间了(从v1.6.3开始);不知道我是怎么错过它的!

票数 23
EN

Stack Overflow用户

发布于 2011-05-11 23:12:29

您可以在.git\refs\remotes\origin下创建一个名为"HEAD“的新文件,并将内容"ref: ref: refs/remotes/origin/master”放入其中。这应该可以解决您的问题。

看起来从一个空的repos克隆会导致这个结果。可能空的repos没有头,因为不存在提交对象。

您可以使用

远程分支--oneline -装饰

查看每个存储库之间的差异,而“问题”存储库没有“源/头”。

编辑:使用命令行提供一种方法

您也可以使用git命令行来执行此操作,它们具有相同的结果

git symbolic ref ref/remotes/origin/HEAD refs/remotes/origin/master

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5963597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档