Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git-提交和合并的更改在本地分支中显示为未过时_Git - Fatal编程技术网

git-提交和合并的更改在本地分支中显示为未过时

git-提交和合并的更改在本地分支中显示为未过时,git,Git,我的一位同事添加了一个新的SQL表供我们使用,之后它被提交并合并到数据库存储库的master。我有最新的本地版本,但出于某种原因,git将其保留为未过时的更改。即使当我把它藏起来(并在以后重写),或者当我强制签出到另一个分支以便我可以做工作时丢失它,它也会不断地回来 这并不完全是个问题,因为我在提交时没有包含它,但我不想一直适应它。我的同事都不知道如何解决这个问题,我想有人试图删除他的本地存储库并再次克隆它,但仍然没有成功。有人知道原因和如何撤销吗 有照片(阻止了一些个人信息) 我试过git

我的一位同事添加了一个新的SQL表供我们使用,之后它被提交并合并到数据库存储库的
master
。我有最新的本地版本,但出于某种原因,
git
将其保留为未过时的更改。即使当我把它藏起来(并在以后重写),或者当我强制签出到另一个分支以便我可以做工作时丢失它,它也会不断地回来

这并不完全是个问题,因为我在提交时没有包含它,但我不想一直适应它。我的同事都不知道如何解决这个问题,我想有人试图删除他的本地存储库并再次克隆它,但仍然没有成功。有人知道原因和如何撤销吗

有照片(阻止了一些个人信息)

我试过
git stash
git checkout--.
(删除它),
git checkout-f
,但这些都不起作用,文件总是会返回

我们都在Windows 10上


我刚刚检查了我们的存储库,我们有两个名称非常相似的文件,但其中一个没有所有的大写字母。也许git和哪个是哪个混淆了

与其说是Git被混淆,不如说是在OS/文件系统组合上,您实际上无法同时存储这两个文件

如果您创建了一个名为
ReadMe.txt
的文件,然后要求您的操作系统创建另一个名为
ReadMe.txt
的不同文件,则您的操作系统拒绝这样做。相反,它只是用新内容覆盖
ReadMe.txt

在Git中,提交不是文件。虽然它们确实包含文件,但它们以一种特殊的、只读的、仅Git的、冻结的格式存储它们,而您的操作系统不使用或不理解这种格式。这种格式可以同时保存两个文件,一个文件的名称以全大写结尾,另一个文件的名称以混合大写结尾

Git正在提取这两个文件,而您的操作系统只保留其中一个。Git意识到你的操作系统不能同时阻止这两者,但Git对此无能为力。(它至少可以提醒您这一点,最近Git已经学会了这么做。)


解决这一问题的方法是进行新的提交,其中文件的名称明显不同(或者只有一个文件的两个名称是您的操作系统认为的一个名称)。最简单的方法是在可以同时存储两个名称的计算机或文件系统上进行。例如,如果您手边有一台Linux机器,请在那里克隆存储库,将文件四处移动,提交并推送。新提交以新的改进名称存储文件。请注意不要签出旧的提交,它的两个文件的名称在Windows上重叠。

请显示
git status
的输出以及您为解决此问题而实际运行的命令。另外,请告诉我们您的操作系统,以及签入更改的人的操作系统。这可能是一个CRLF问题,在这种情况下,这些操作系统和您的(及其)可能有助于诊断。您可以在此文件上共享
git diff
的输出吗?git reset--硬必须完成此操作;)我刚刚检查了我们的存储库,我们有两个名称非常相似的文件,但其中一个没有所有的大写字母。也许git和哪个是哪个混淆了?是的,我也担心他们混淆了表格,看起来他们是分开制作的,但他们没有意识到他们有相同的名字。我会和他们谈谈改名的事。