我有一个从远程存储库中提取的本地存储库。运行git pull
以及git fetch; git merge FETCH_HEAD
用于执行完全相同的操作,正如以下描述git pull
所预期的那样:
描述
将来自远程存储库的更改合并到当前分支中。在其默认模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。
目前,出乎意料git fetch
的是,运行停止FETCH_HEAD
正确更新引用。FETCH_HEAD
现在被困在一个旧的提交上。运行git fetch
会将所有更改下载到远程跟踪的分支,但 FETCH_HEAD 保持不变,无论它在哪个分支中运行。
# currently in branchone
> git fetch
# branchone is up to date since...
> git rev-parse branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c
# ...its in the same commit as the remote branch
> git rev-parse origin/branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c
# however FETCH_HEAD shows something different
> git rev-parse FETCH_HEAD
37301df96597ac037f8e7e846fea6fc7df77bea5
git pull
仍然执行正确的任务。然而,运行git fetch; git merge FETCH_HEAD
会做一些不同的事情,因为FETCH_HEAD
指向不正确的提交。
是否有任何设置或问题可能会git fetch
影响行为?