首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git提取与Git提取源

Git提取与Git提取源
EN

Stack Overflow用户
提问于 2017-11-24 08:43:18
回答 1查看 7K关注 0票数 1

我想获取一个单独的远程分支,然后将我当前的工作分支重新基于它,因为我正在与某人共享它。通常我只会做:

git fetch

git rebase origin/branch_im_working_on

这似乎工作正常,但它似乎从远程存储库获取所有分支。所以我环顾四周发现了这个:

git fetch origin branch_im_working_on

当我这样做时,git告诉我它取了头,然后试着去做:

git rebase origin/branch_im_working_on

git告诉我,我是最新的,没有什么可做的,即使我知道有一些变化被推到远程。

如果我试着做:

git rebase origin branch_im_working_on

我得到了很多合并冲突,所以必须回到原来的命令中才能更新我的分支:

git fetch

git rebase origin\branch_im_working_on

有人能帮我了解这里发生了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-24 09:13:59

git fetchgit fetch origin的差异

  • 如果git只有一个远程origin (您可以通过git remote -v检查遥控器),那么这两个命令的工作方式是相同的。
  • 如果git包含多个遥控器,例如有remotes originupstreamgit fetch将从远程originupstream获取所有更改。git fetch origin将只从远程origin获取更改。

此外,如果您只想从远程获取某个分支,则可以使用git fetch remotename branchname。例如,git fetch origin branch_im_working_on将只从原始branch_im_working_on获取更改。

在远程分支的顶部重新设置本地更改:

假设提交历史记录在抓取后如下所示:

代码语言:javascript
复制
…---A---B---C---D  branch_im_working_on
         \
          E---F   origin/branch_im_working_on

如果您希望您的本地更改(提交C和提交D)位于origin/branch_im_working_on (最新提交)的顶部,下面的任何命令都可以正常工作:

代码语言:javascript
复制
git rebase origin branch_im_working_on
git rebase origin/branch_im_working_on
git fetch origin branch_im_working_on --rebase

然后提交历史记录将是:

代码语言:javascript
复制
…---A---B---E---F---C---D  branch_im_working_on
                |
     origin/branch_im_working_on

但是命令不能工作(对于windows ),因为origin\branch_im_working_on不是一个有效的分支(既不是本地分支,也不是跟踪分支)。

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

https://stackoverflow.com/questions/47469380

复制
相关文章

相似问题

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