我正在使用Git与其他用户合作,但今天我无法使用“git pull
”获取某些文件的最新更改,而我看不到“git log
”中的更改。
可能是什么问题?
答案 0 :(得分:9)
对我有用的是,
.git
文件夹.git
git checkout
删除之前,您可以尝试
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
中删除出于某种原因,我现在忘了。)因此pull
或checkout
或reset
或任何其他命令忽略了它。直到我开始在新的新克隆中复制稀疏结账配置并实现错误之前,这一点非常令人困惑。
如果您使用稀疏结账,这只会发生在您身上。如果您没有使用稀疏结账,则无法实现。 (检查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
为我工作,但您必须进入文件夹,然后不仅在父文件夹上使用此命令,而且要使用
。