比较来自世界各地的卖家的域名和 IT 服务价格
git

Git pull: 错误:记录 foo not uptodate. 不能合并

我正在尝试从远程分支更新我的回购,并在我做的时候继续误会这个错误 "git pull". 我没有做出任何当地的变化,如果我贡献,它就没有义务拯救他们。

我试过了:


git reset --hard


我得到了同样的问题

唯一似乎工作的东西, - 它正在删除令人反感的文件并重新尝试 git pull.

我也试过
git stash

, 接着
git pull

. 不要去。

编辑:借助 PortableGit-1.6.4-preview20090729 因此,必须纠正所有具有错误错误的错误。
已邀请:

君笑尘

赞同来自:

有几种方法可以解决它,但我发现了 git stash 适合我。 这暂时将您当地的变化转移到另一个地方。 然后你可以拉动捕获最新的更改。 然后,您可以返回当地的更改。

那太简单了:


$ git pull
...
...
file your_file.rb not up to date, cannot merge.

$ git stash
$ git pull
$ git stash pop

小明明

赞同来自:

如果您更新索引以忽略某些文件:


git update-index --assume-unchanged <file>


然后,例如,在某些其他分支中放置订单:


git checkout <branch>
&gt; error: Entry '<file>' not uptodate. Cannot merge.


强制索引更新消除了此问题:


git update-index --really-refresh
<file>: needs update


其次是:


git reset --hard


然后一切都应该回到圆圈。
</file></file></branch></file>

莫问

赞同来自:

当您尝试仅由寄存器中从存储库中提取两个文件名时,通常会发生这种问题。 如果你在 FAT, NTFS 在没有注册的注册 /实质上,随时在模式下使用时 Windows/ 或者 HFS+ 在没有注册的模式下,有两个文件 "foobar" 和 "FOOBAR", 那 Git 两个不同的文件将看到,但文件系统只会看到一个会导致各种问题的文件。 Git 检查,让我们说 "FOOBAR", 然后检查一下 "foobar", 文件系统看到如何替换内容 "FOOBAR", 但让它到位。 现在K. Git, 看起来 "FOOBAR" 它被内容所取代 "foobar", 和 "foobar" 消失了。

这个主要问题有两种不同的表现形式。 首先,当您的存储库实际上包含两个仅在寄存器上不同的文件时。 在这种情况下,您需要使用对寄存器敏感的文件系统,或者您需要编辑存储库以确保不会发生这种情况; 对寄存器不敏感的文件系统根本无法存储此存储库的内容。

另一个案例可以绕过 - 这是重命名改变文件寄存器的时。 例如,该存储库 Git 包含重命名S. "EXAMPLE" 在 "example". 前 Git 检查新版本,他会尝试检查它是否不会覆盖磁盘上有一些现有文件。 他认为这一点 "example"- 这是一个新的文件名,它会询问文件系统是否存在,并且文件系统将看到 "EXAMPLE" 并说 "是的", 所以 Git 它将拒绝检查新版本,因为它相信它将覆盖未知文件。 在这种情况下,如果您没有您担心的本地更改,简单
git reset --hard <revision-to-checkout>

, 通常,它足以通过问题并转到新版本。 只需尝试将文件重命名为才有不同的名称,只有在不注册的情况下使用文件系统,因为这会导致此类问题。
</revision-to-checkout>

二哥

赞同来自:

一般来说,这意味着您在本地存储库中未修复的本地文件中具有更改。 你也可以看到这个
https://coderoad.ru/878554/
再来一点。

快网

赞同来自:

有关帖子的更多详细信息 @Brian 坎贝尔。 /因为 reset hard 也没有工作/ 我想指向极端情况,这阻止了我。

我移动了文件。
OldFile

到另一个文件夹并重命名它
NewFile

. 然后我将文件标记为
assume-unchanged

.

它困扰我切换分支机构,没有缓存来保存或修复推送。 问题是,在安装标志之前,我没有在新名称中记录此文件的更改
assume-unchanged

. 所以我回来了
no-assume-unchanged

, 固定,然后返回
assume-unchanged

我再次可以切换分支机构。

三叔

赞同来自:

我看到了类似的问题 /Windows 10/: 我在
branchA

我想去
master

. 我有几个未固定的变化,所以首先我
git stash

, 之后
git checkout -f master

, 但我还有
Entry 'fileName' not uptodate. Cannot merge

.


git status

没有显示任何可以制作的东西。

最后,我刚刚删除了文件

并且能够去另一个分支 /当然,迫使我的文件返回/, 所以我假设某个地方 git 有一个错误。

江南孤鹜

赞同来自:

它可能是访问文件的问题。 Git 除非配置否则,否则也会运行版本。 只需为具有几乎相同问题的人添加此答案,但不一样。

小姐请别说爱

赞同来自:

值得一试:

您是否只能安装此更新的值
http://git-scm.com/docs/git-config#_variables
在 false?


core.trustctime


如果一个 false, 那个差异 ctime 索引和工作副本之间被忽略; 当更改索引的时间定期在外面更改时,它很有用 Git /文件系统查找器和一些备份系统/.

君笑尘

赞同来自:

我添加了你的答案,因为没有休息的提到。 在我将新文件添加到带有标志的索引之后发生的情况
-N

, 因此,简单地将它们添加到索引,而无需添加其内容。 在这种状态下,执行
git stash

导致此错误。

要回复问题请先登录注册