出于某种原因,当我最初为我的git项目从存储库中提取时, 我的工作副本中有大量的文件,它们没有明显的更改,但一直出现在我的非阶段性更改区域中。

我在Windows xp上使用Git Gui,当我去看文件,看看有什么改变。 我看到的是:

old mode 100755  
new mode 100644  

有人知道这是什么意思吗?

如何将这些文件从未分级更改列表中删除?(为了挑出我最近编辑过并想提交的文件,不得不浏览100个文件,这很烦人)。


当前回答

如果有任何删除的文件,上面的许多解决方案都将失效。

这将列出仅被修改而未删除的文件,并将它们全部更改为755

git diff-files --name-only --diff-filter=d | xargs -L 1 chmod 755

其他回答

似乎您更改了目录的一些权限。我执行以下步骤来恢复它。

$  git diff > backup-diff.txt                ### in case you have some other code changes 

$  git checkout .

这招对我很管用:

git ls-files -m | xargs -L 1 chmod 644

该解决方案将git文件权限从100755更改为100644,并将更改推回bitbucket远程回购。

看看你的回购的文件权限:git ls-files——stage 如果100755而你要100644

然后执行如下命令: Git ls-files——stage | sed 's/\t/ /g' | cut -d' ' -f4 | xargs Git update-index——chmod=-x

现在再次检查你的回购文件权限:git ls-files——stage 现在提交您的更改:

吉特状态

Git commit -m“恢复文件权限”

git push

设置的核心。Filemode设为false可以工作,但要确保~/中的设置。Gitconfig不会被.git/config中的那些覆盖。

我只有一个更改权限的麻烦文件。 为了单独回滚它,我只是用rm <file>手动删除它,然后签出一个新的副本。

幸运的是,我还没有上演。

如果我有,我可以在运行git checkout - <文件>之前运行git reset - <文件>