现在大约一个月,我对git有一个奇怪的问题。
我在一个包含大量提交的大型项目中使用Intellij,我们使用gerrit进行代码审查和协调。
通常我必须重置本地更改或使用intellij来重新定义我的更改。
有一段时间现在rebase失败,因为git无法正确重置文件
文件内容已正确重置,但仍会更改某些标记或元数据。
Git Diff未列出任何更改
仅在第二次"结帐后 - 文件" (intellij:还原更改),文件列为'未更改'。
我附上了一个显示该行为的最小例子:
user@Windows10 MINGW64 /d
$ mkdir gittest
user@Windows10 MINGW64 /d
$ cd gittest/
user@Windows10 MINGW64 /d/gittest
$ git init
Initialized empty Git repository in D:/gittest/.git/
user@Windows10 MINGW64 /d/gittest (master)
$ echo test >> pom.xml
user@Windows10 MINGW64 /d/gittest (master)
$ git add .
user@Windows10 MINGW64 /d/gittest (master)
$ git commit
[master (root-commit) e498342] testcommit
1 file changed, 1 insertion(+)
create mode 100644 pom.xml
user@Windows10 MINGW64 /d/gittest (master)
$ git status
On branch master
nothing to commit, working tree clean
user@Windows10 MINGW64 /d/gittest (master)
$ echo test >> pom.xml
user@Windows10 MINGW64 /d/gittest (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: pom.xml
no changes added to commit (use "git add" and/or "git commit -a")
user@Windows10 MINGW64 /d/gittest (master)
$ git checkout -- pom.xml
user@Windows10 MINGW64 /d/gittest (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: pom.xml
no changes added to commit (use "git add" and/or "git commit -a")
user@Windows10 MINGW64 /d/gittest (master)
$ git diff
user@Windows10 MINGW64 /d/gittest (master)
$ git checkout -- pom.xml
user@Windows10 MINGW64 /d/gittest (master)
$ git status
On branch master
nothing to commit, working tree clean
与git reset相同的行为--hard,只有连续的git checkout - 文件会删除所有更改。
环境:Windows 10,Eset Antivirus,git版本2.16.0.windows.2,SSD和HDD上的行为相同
答案 0 :(得分:0)
找到一个解决方案,但它相当不满意: 删除git for windows并安装最新版本(在我的情况下为2.17.1.windows.2)
禁用Windows搜索索引不起作用,也无法使用git设置或重置git索引。
我只能假设我的git安装以某种方式损坏并且有某种提交挂钩或其他提交特定问题。