我有一个远程分支1.4为什么git pull会引入git fetch rebase不是的变化?
我与结果的git fetch origin
:
13b1449..51618fe 1.4 -> origin/1.4
然后我做了git rebase 13b1449
混帐回应Current branch 1.4 is up to date
然后我做了一个git pull origin 1.4
它带来了3个文件。
我在做什么错误取&重新分配不更新我的分支与它从远程服务器获取什么?
我有一个远程分支1.4为什么git pull会引入git fetch rebase不是的变化?
我与结果的git fetch origin
:
13b1449..51618fe 1.4 -> origin/1.4
然后我做了git rebase 13b1449
混帐回应Current branch 1.4 is up to date
然后我做了一个git pull origin 1.4
它带来了3个文件。
我在做什么错误取&重新分配不更新我的分支与它从远程服务器获取什么?
13b1449
是当地的哈希提交。 “远程”提交是51618fe
- 您作为origin/v1.4
的头部提交的提交。
您的rebase
命令没有任何影响(您要求git在当前提交时重定位),另一方面pull
正确地将您的本地分支向前移动。
为了避免混淆,而不是使用哈希值,你可以使用分支名称:
git rebase origin/v1.4
git
有几个选择,当你拉应用的rebase
而不是merge
。
引用this link,通过this SO question发现:
$ 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
A fetch
只检索“远程”参考(即来自不同存储库的参考)。
A pull
实际上是一个fetch
后跟一个merge
。
如果你想从origin/1.4
这个命令你已经取出后的变化,问题: git merge origin/1.4
我得到的抓取只检索它们,但不应该rebase然后将这些更改应用到我的本地分支?我正在尝试基于SHA1哈希重新绑定。我应该指定名称origin/1.4吗? – taylonr
现在有道理。我认为这是SHA1中的一个椭圆,而不是那里有2个哈希。 – taylonr