首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git重新基地-与发展和起源/发展之间的区别?

git重新基地-与发展和起源/发展之间的区别?
EN

Stack Overflow用户
提问于 2013-09-06 20:33:55
回答 1查看 3.4K关注 0票数 3

这很奇怪。根据我的本地develop分支和远程develop分支进行重定位显然有一些不同。以下是一些细节:

因此,假设我有一个特性分支,feat,我不时地对其进行重新定位:

代码语言:javascript
复制
git pull --rebase origin develop

这很好用。但现在,我已经做好了准备,准备压制我的提交,我注意到以下两个方面有很大的不同:

代码语言:javascript
复制
git rebase -i origin develop

代码语言:javascript
复制
git rebase -i develop

前者向我的编辑器提供了来自develop的大量提交列表,其中没有一个是我在feat上的更改。它还将我切换到develop分支。后者只在feat上提交了我的编辑器,并且没有将我切换到本地develop分支。

git rebase -i origin develop是否真的将我切换到本地的develop,然后根据遥控器进行重定位?我应该先git checkout develop; git pull,然后是git checkout feat; git rebase -i develop吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-06 22:07:13

代码语言:javascript
复制
git rebase -i origin develop

不是用于rebase的正确语法。

代码语言:javascript
复制
git rebase -i develop
# or this, for the remote-tracking branch
git rebase -i origin/develop

是正确的语法。

git rebase说这是一般的语法(省略了一些清晰的选项):

代码语言:javascript
复制
git rebase [-i] [<upstream>] [<branch>]

其中<upstream>是一个分支:

使用git rebase -i origin develop时,origin是远程的名称,而不是分支。如果要针对origin/develop进行重基,则需要使用路径分隔符/

代码语言:javascript
复制
git rebase -i origin/develop

至于你的问题:

git rebase -i origin develop是否真的将我切换到本地开发,然后在远程环境下重新建立基础?

它可能切换到您的本地develop,但由于语法甚至无效,我不能百分之百确定。我说的原因可能是因为当您通过一个有效的上游分支和另一个分支时,rebase的行为是先签出第二个分支,然后再根据第一个分支进行重基:

如果指定了<branch>git rebase将在执行任何其他操作之前执行自动git checkout <branch>。否则,它将保留在当前分支上。

最后,如果本地git rebase -i developgit rebase -i origin/develop 不是远程跟踪分支origin/develop的最新更新,比如git fetch,并且从不将更新合并到本地develop中,那么develop可能是不同的。

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

https://stackoverflow.com/questions/18666170

复制
相关文章

相似问题

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