出于某种原因,当我最初为我的git项目从存储库中提取时, 我的工作副本中有大量的文件,它们没有明显的更改,但一直出现在我的非阶段性更改区域中。
我在Windows xp上使用Git Gui,当我去看文件,看看有什么改变。 我看到的是:
old mode 100755
new mode 100644
有人知道这是什么意思吗?
如何将这些文件从未分级更改列表中删除?(为了挑出我最近编辑过并想提交的文件,不得不浏览100个文件,这很烦人)。
出于某种原因,当我最初为我的git项目从存储库中提取时, 我的工作副本中有大量的文件,它们没有明显的更改,但一直出现在我的非阶段性更改区域中。
我在Windows xp上使用Git Gui,当我去看文件,看看有什么改变。 我看到的是:
old mode 100755
new mode 100644
有人知道这是什么意思吗?
如何将这些文件从未分级更改列表中删除?(为了挑出我最近编辑过并想提交的文件,不得不浏览100个文件,这很烦人)。
当前回答
这与bkm的发现类似,但它也会考虑任何已删除的文件,并且只在应用更改时给出警告。
这可以很好地恢复上次提交的文件模式设置。
git diff -p --no-ext-diff --no-color --diff-filter=d | grep -E "^(diff|old mode|new mode)" | sed -e "s/^old/NEW/;s/^new/old/;s/^NEW/new/" | git apply
其他回答
你可以试试 git重置-硬头 将回购重置为预期的默认状态。
这招对我很管用:
git ls-files -m | xargs -L 1 chmod 644
似乎您更改了目录的一些权限。我执行以下步骤来恢复它。
$ git diff > backup-diff.txt ### in case you have some other code changes
$ git checkout .
您可以使用以下命令将文件模式更改回。 Git添加——chmod=+x——文件名 然后提交到分支。
这通常发生在回购在Windows和Linux/Unix机器之间克隆时。
只需告诉git忽略文件模式更改。这里有几种方法:
配置仅为当前回购: Git配置核心。filemode假 在全球范围内配置: Git配置——全局核心。filemode假 在~/.gitconfig中添加: (核心) Filemode = false
只要从中选择一个。