0

我有一个远程分支 1.4

我做了一个 git fetch origin结果:

13b1449..51618fe 1.4 -> origin/1.4

然后我做了一个git rebase 13b1449

git 回应Current branch 1.4 is up to date

然后我做了一个git pull origin 1.4,它带来了 3 个文件。

fetch & rebase 没有用它从远程服务获取的内容更新我的分支,我做错了什么?

4

2 回答 2

2

13b1449是您本地提交的哈希值。“远程”提交是51618fe- 您作为origin/v1.4.

您的rebase命令没有任何效果(您要求 git 根据当前提交重新设置基准),pull另一方面,正确地向前移动了您的本地分支。

为避免混淆,您可以使用分支名称,而不是使用散列:

git rebase origin/v1.4

git有几个选项可以在您拉动时应用 arebase而不是 a 。merge

引用此链接,通过此 SO 问题找到:

使用变基而不是合并拉动

$ git pull --rebase

# e.g. if on branch "master": performs a `git fetch origin`,
# then `git rebase origin/master`

因为 git 中的分支合并是与合并提交一起记录的,所以它们应该是有意义的——例如,表明一个特性何时被合并到一个发布分支。但是,在几个团队成员经常同步单个分支的日常工作流程中,时间线会被常规 git pull 上不必要的微合并污染。变基可确保始终重新应用提交,以使历史保持线性。

您可以将某些分支配置为始终在没有 --rebase 标志的情况下执行此操作:

# make `git pull` on master always use rebase
$ git config branch.master.rebase true

您还可以设置一个全局选项来为每个新跟踪的分支设置最后一个属性:

# setup rebase for every tracking branch
$ git config --global branch.autosetuprebase always
于 2013-05-20T15:58:52.367 回答
0

Afetch只检索“远程”引用(即来自不同存储库的引用)。

Apull实际上是 afetch后跟 a merge

如果您想从 进行更改origin/1.4,请在获取后发出此命令: git merge origin/1.4

于 2013-05-20T14:06:22.033 回答