文件未使用“git pull”更新

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

我正在使用 Git 与其他用户协作,但是今天我无法使用“

git pull
”获取某些文件的最新更改,并且无法看到“
git log
”中的更改。

可能是什么问题?

git git-pull
13个回答
58
投票

对我有用的是,

  1. 删除
    .git
    文件夹
  2. 从其他仓库复制
    .git
  3. 现在
    git checkout

删除之前,您可以尝试

git fetch --all 
git reset --hard origin/master

您需要将

master
替换为适当的分支,现在默认为
main


25
投票

什么对我有用,

git reset --hard origin/master

它向我展示了一些文件名太长,以至于 git 无法从我的存储库中提取它们,因此导致了不匹配和不正确的构建。

所以我按照以下步骤进行修复并再次进行了硬重置。

git config --system core.longpaths true

幸好它成功了。


11
投票

就我而言,问题是我的

index.lock
文件夹中有一个
.git
文件。我删除了它,然后拉工作了。


7
投票

检查您当前的分支。

git status
git branch

如果您不在分支中,则处于 分离 HEAD 模式并且

git pull
不会合并任何内容。

git log --all --branches

git log
将有助于确保您查看获取的分支(即远程跟踪分支)上是否有任何新提交。
我使用 git log alias 将这些提交显示为图表。


7
投票

您可能有未完成的合并,从而阻止了拉取。检查您是否有正在进行的提交。


5
投票

它对我有用:
而不是

$ git pull  

使用

$ git pull [remote] [local-branch>

1
投票

我只是想添加另一种可能发生这种情况的情况。我使用的是稀疏结帐。由于某种原因,我的工作树中有一个目录,我认为它包含在稀疏结账中(我认为它列在

.git/info/sparse-checkout
中),但事实并非如此(由于某种原因,我现在忘记了它从
.git/info/sparse-checkout
中删除了) .)所以它只是被
pull
checkout
reset
或任何其他命令忽略。这非常令人困惑,直到我开始在新的克隆中复制稀疏结帐配置并意识到错误。

只有当您使用稀疏结帐时,这种情况才会发生。如果您不使用稀疏结帐,则不会发生这种情况。 (检查 git config 以查看是否启用了稀疏检查,并检查 .git/info/sparse-checkout 是否存在,但您会知道您是否正在这样做,因为我认为无论如何它都必须由用户手动设置。 )(如果你好奇它是什么,请谷歌它 - 它只是一个简单的机制,用于从结帐中省略文件和目录,否则这些文件和目录将被跟踪/拉取/获取等。)


1
投票

我的企业 Gitlab 存储库最近从 HTTPS 更改为 SSH,也遇到了同样的问题。由于我的存储库仍然使用 HTTPS,任何

git pull
都会被默默地忽略。

将origin更改为SSH后,一切又顺利了。

git remote set-url origin [email protected]:username/repo.git

(要获取 SSH URL,只需单击 Gitlab/Github Web 界面中的“克隆”按钮,然后选择“使用 SSH 克隆”)


0
投票

有 2 种可能的情况:
1. 如果您有 Bitbucket、gitlab 等帐户。
您可能需要先同步您的 fork 目录,然后在本地分支上执行 git pull。基本上,您必须重新设置您的 fork 副本以与远程主服务器同步并在本地副本中执行 git pull。
2. 只需尝试将本地工作副本变基以与远程主控同步。


0
投票

git重置--hard origin/master

对我有用,但你必须进入文件夹,然后不仅在父文件夹上使用此命令。


0
投票

对我来说,这是我在本地做出的承诺。 这些提交修改了我想要拉取的内容。 所以 git pull 无法从源获取文件


0
投票

对我来说 FETCH_HEAD 文件没有所有分支,因为我的最新分支没有被跟踪 所以我:

强制删除分支(从该分支外部)

git branch -D <branch_name>

从给定分支创建新分支

git fetch origin <remote_branch>:<local_branch>

使远程分支成为跟踪分支

git push --set-upstream origin <branch_name>

然后用

git fetch
进行测试,我注意到我的 FETCH_HEAD 文件现在已正确更新。


0
投票

就我而言,FETCH_HEAD 不知何故被破坏了。

当我使用

git branch -avv
检查它时,我的分支正在跟踪错误的提交。即使使用几个月前的提交。

我用

git reset --hard [commit hash]

解决了这个问题
© www.soinside.com 2019 - 2024. All rights reserved.