Git 状态显示 git 重置后的更改 -- 硬,第二次签出 -- 删除更改
Git status shows changes after git reset -- hard, 2nd checkout -- removes change
大约一个月以来,我遇到了 git 的一个奇怪问题。
我在一个有很多提交的大型项目中使用 Intellij,我们使用 gerrit 进行代码审查和协调。
通常我必须重置本地更改或使用 intellij 重新设置我的更改。
一段时间以来,rebases 失败了,因为 git 无法正确重置文件
文件内容已正确重置,但某些标志或元数据仍发生更改。
Git Diff 未列出任何更改
仅在一秒钟后 "checkout -- file"(intellij:还原更改),文件被列为 'unchanged'.
我附上了一个显示该行为的最小示例:
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 重置相同的行为 --hard,只有连续的 git 检出 -- 文件删除所有更改。
环境:Windows10,Eset Antivirus,git 版本 2.16.0.windows.2,SSD 和 HDD 上的行为相同
找到了解决方案,但不太令人满意:
为 windows 删除 git 并安装最新版本(在我的例子中为 2.17.1.windows.2)
禁用 windows 搜索索引无效,也无法使用 git 设置或重置 git 索引。
我只能假设我的 git 安装以某种方式损坏并且有某种提交挂钩或其他特定于提交的问题。
大约一个月以来,我遇到了 git 的一个奇怪问题。
我在一个有很多提交的大型项目中使用 Intellij,我们使用 gerrit 进行代码审查和协调。
通常我必须重置本地更改或使用 intellij 重新设置我的更改。
一段时间以来,rebases 失败了,因为 git 无法正确重置文件
文件内容已正确重置,但某些标志或元数据仍发生更改。
Git Diff 未列出任何更改
仅在一秒钟后 "checkout -- file"(intellij:还原更改),文件被列为 'unchanged'.
我附上了一个显示该行为的最小示例:
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 重置相同的行为 --hard,只有连续的 git 检出 -- 文件删除所有更改。
环境:Windows10,Eset Antivirus,git 版本 2.16.0.windows.2,SSD 和 HDD 上的行为相同
找到了解决方案,但不太令人满意: 为 windows 删除 git 并安装最新版本(在我的例子中为 2.17.1.windows.2)
禁用 windows 搜索索引无效,也无法使用 git 设置或重置 git 索引。
我只能假设我的 git 安装以某种方式损坏并且有某种提交挂钩或其他特定于提交的问题。