文件没有使用'git pull'更新

时间:2013-12-14 10:02:26

标签: git git-pull

我正在使用Git与其他用户合作,但今天我无法使用“git pull”获取某些文件的最新更改,而我看不到“git log”中的更改。

可能是什么问题?

10 个答案:

答案 0 :(得分:9)

对我有用的是,

  1. 删除.git文件夹
  2. 从其他代表处复制.git
  3. 现在git checkout
  4. 删除之前,您可以尝试

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

    一切顺利

答案 1 :(得分:6)

就我而言,问题是我的index.lock文件夹中有.git个文件。我删除了,然后拉了工作。

答案 2 :(得分:3)

检查您当前的分支。

git status
git branch

如果您不在分支机构中,则您处于detached HEAD mode状态,git pull不会合并任何内容。

git log --all --branches

git log将有助于确保您查看所提取分支上是否有任何新提交(即remote tracking branches)。
我使用git log alias将这些提交显示为图形。

答案 3 :(得分:2)

你可能有一个未完成的合并,以防止拉。检查您是否正在进行提交。

答案 4 :(得分:2)

对我有用的东西

git reset --hard origin/master

它告诉我某些文件名太长,以至于git无法将它们从我的仓库中提取出来,因此不匹配且构建不正确。

因此,我遵循以下要求进行修复,并再次进行了硬重置。

git config --system core.longpaths true

非常感谢。

答案 5 :(得分:1)

我只想添加另一个可能发生这种情况的案例。我正在使用稀疏结账。出于某种原因,我在我的工作树中有一个目录,我认为它包含在稀疏结账中(我认为它列在.git/info/sparse-checkout中)但是不是(我已将其从.git/info/sparse-checkout中删除出于某种原因,我现在忘了。)因此pullcheckoutreset或任何其他命令忽略了它。直到我开始在新的新克隆中复制稀疏结账配置并实现错误之前,这一点非常令人困惑。

如果您使用稀疏结账,这只会发生在您身上。如果您没有使用稀疏结账,则无法实现。 (检查git config以查看是否启用了sparseCheckout,并检查是否存在.git / info / sparse-checkout,但是你知道你是否这样做,因为我认为它必须由用户手动设置。 )(谷歌,如果你好奇它是什么 - 它只是一个简单的机制,从结帐中省略文件和目录,否则将被跟踪/拉取/提取等。)

答案 6 :(得分:0)

有2种可能的sceanrios:
1.如果您在Bitbucket,gitlab等帐户中拥有任何帐户。
您可能必须先与fork目录同步,然后在本地分支上执行git pull。基本上,您必须重新构建fork副本的基础,才能与远程master同步并在本地副本中执行git pull。
2.只需尝试重新建立本地工作副本的基础,以使其与远程主副本保持同步。

答案 7 :(得分:0)

希望我的评论对某人有用))我有这种问题。我在ubuntu上使用laravel,所以我通过重置opcache并重新启动队列工作器来解决它。

答案 8 :(得分:0)

对我来说,这是我在本地进行的提交。 这些提交修改了我想要拉的东西。 所以 git pull 没有从原点获取文件

答案 9 :(得分:-1)

git reset --hard origin / master

为我工作,但您必须进入文件夹,然后不仅在父文件夹上使用此命令,而且要使用