GIT 不会从远程拉取最新更改

问题描述 投票:0回答:3

不知何故,我的本地分支比远程分支晚了 8 个月。

当我这样做时

git pull origin [my branch name]
它说
Already up to date

我尝试了

git fetch origin [my branch name]
,然后
git reset --hard FETCH_HEAD
在此处找到),但我的本地副本仍然指向超级旧的提交。

我还尝试使用

git checkout 1d5d525
在此处找到)重置为特定内容,但它显示:
error: pathspec '1d5d525' did not match any file(s) known to git.
,但该提交在远程分支中为 100%,因为我可以在 BitBucket 中看到它。

我能想到的唯一与我所做的不同的是,昨天我在另一台机器上工作(我的 OSX 笔记本电脑,而不是我的 Win10 台式机),但这并不能解释为什么落后了 8 个月。

如果有哪位大师能给我一些指导,那就太好了。

注意:我可以从我的笔记本电脑提交更多更改,它们会显示在 BitBucket 中我的分支上,但仍然没有运气。

注意:我是唯一在该分支工作的人,以防信息很重要。

谢谢!

编辑:

这是按要求输出

git branch -vv
git remote - v

$ git branch -vv
ImageEdit 39b733c Image editing tweaks
Widgets   cce09e8 Merge Globals + Widgets to use the same functionality / DB table
* john      11798f3 [origin/john] Finished PDF Header. Waiting for feedback...
master    cce09e8 Merge Globals + Widgets to use the same functionality / DB table

$ git remote - v
origin  [email protected]:johnt/website.git (fetch)
origin  [email protected]:johnt/website.git (push)

注意:我会指出,根据上述提交消息,主分支似乎也远远落后于远程分支。

编辑2:

这是

git branch -a -vv

的输出
$ git branch -a -vv
ImageEdit                39b733c Image editing tweaks
Widgets                  cce09e8 Merge Globals + Widgets to use the same functionality / DB table
* john                   11798f3 [origin/john] Finished PDF Header. Waaiting for feedback...
master                   cce09e8 Merge Globals + Widgets to use the same functionality / DB table
remotes/origin/ImageEdit 39b733c Image editing tweaks
remotes/origin/Widgets   cce09e8 Merge Globals + Widgets to use the same functionality / DB table
remotes/origin/glenn     0548f0d Changed Create a Lifeshare Page to Create a Lifeshare
remotes/origin/john      11798f3 Finished PDF Header. Waiting for feedback...
remotes/origin/master    cce09e8 Merge Globals + Widgets to use the same functionality / DB table
git bitbucket
3个回答
6
投票

不确定这是否是正确的礼节,但即使@VonC和@AnimiVulpis我们帮忙,我也能自己解决。

使用

git branch -a -vv
显示本地和远程分支都指向同一个提交,但该提交是错误的(该提交是8个月前的)。

我将存储库克隆到一个新文件夹中,登录 Bitbucket 以获取最新的提交哈希,并使用

git reset --hard [commit hash]
将 HEAD 指向正确的提交。

现在一切似乎都工作正常(尽管在不同的目录中,哈哈)。我不确定远程分支最终如何指向该提交,但很高兴问题得到了解决。

感谢@VonC 和@AnimiVulpis 花时间提供帮助。


1
投票

从您的输出中,本地分支和远程跟踪分支引用相同的提交,因此是最新的。

尝试

git fetch
确认:它将更新所有分支的远程跟踪分支。
如果有任何差异,将会显示
git branch -avv

并且

git branch -f mybranch origin/mybranch
(或
git checkout -B mybranch origin/mybranch
)足以重置它。


0
投票

我确信这是一个很老的问题。 但我被难住了,并找到了这里的路。 问题是我已将

master
重命名为
main
并忘记删除
master
。 所有
git pull master
命令都不起作用,因为我已经在
main
分支工作了一个月,当我很长一段时间以来第一次进入服务器并执行
git pull
时,我忘记了它。 我刚刚删除了
master
分支,这样我就不会再感到困惑了。 希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.