如果文件和目录的权限已被修改,如何在git中恢复它们的权限?

378

我有一个 Git checkout。所有文件的权限都与 Git 认为应该有的不同,因此它们都被显示为已修改。

在不触及文件内容的情况下(只想修改权限),如何将所有文件的权限设置为 Git 认为应该具备的权限?


12个回答

-2

最简单的做法是将权限改回去。正如 @kroger 所指出的,git 仅跟踪可执行位。因此,您可能只需运行 chmod -x 文件名 以修复它(或者如果需要的话,运行 +x)。


这是 git show 的一个示例:diff --git a/OpenWatch/src/org/ale/openwatch/fb/FBUtils.java b/OpenWatch/src/org/ale/openwatch/fb/FBUtils.java index cd6fa6a..e5b0935 100644上述加粗的部分是文件的权限。 - Conrado
这对我来说似乎是最容易的。不幸的是,我遇到了与Conrado相同的问题 - 我无法将权限从100644更改为100755。我认为你不应该被投票否决;应该投票否决Git。它在许多方面和许多不同层面上都存在很多问题... - jww

-3

etckeeper工具可以处理权限,并且:

etckeeper init -d /mydir

您可以将其用于除/etc之外的其他目录。

通过使用软件包管理器安装或从上面的链接获取源代码。


5
它设置的权限是什么?如果它不读取Git元数据或调用Git,它就不会实现OP所请求的功能。 - ivan_pozdeev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接