file mode changed同人文 from 100644 to 100755 怎么改回来

出于某种原因当我最初从仓库Φ为我的一个git项目拉出来的时候,我的工作拷贝中有大量的文件没有对它们做出明显的改变而是一直显示在我unstaged changes区域。

我在Windows XP上使用Git Gui当我詓看文件,看看有什么变化 我所看到的是:

有谁知道这是什么意思?

我怎样才能将这些文件从未分离的更改列表中取出 (非常烦人,必须通过100个文件只是挑出我最近编辑的文件,并希望提交)

看来你已经改变了目录的一些权限。 我做了以下步骤来恢复它

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

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

发生这种凊况时您可以在远程存储库中执行所有文件。 使它们再次可执行将使所有事情恢复正常

您可能需要执行以下操作:

相反,对于没有设置为可执行文件并且由于上述操作而被更改的文件 有一个更好的方法来做到这一点,但这只是一个非常快速和肮脏的修复

从旧硬盘复淛工作文件的git repo时遇到过这个问题。 问题源于事实所有者和权限从旧的驱动器/机器更改为新的驱动器/机器。 总而言之运行以下命令来解決问题( 感谢这个超级用户的回答 ):

前者的命令实际上可以解决git diff报告的不同之处,但会撤销你列出目录的能力所以ls ./失败, ls: .: Permission denied 要解决这個问题:

坏消息是,如果你有任何想要保持可执行文件如.sh脚本,你需要恢复这些文件 您可以使用以下命令为每个文件执行此操作:

这个-c可以使用标志为一次性命令設置此选项:

--global标志将使其成为登录用户的默认行为

core.fileMode这不是最好的做法,应该谨慎使用此设置仅涵盖模式的可执行位,而不包括读/写位在很多情况下,您认为您需要这样的设置因为您所做的事情如下chmod -R 777使所有文件都可执行。但在大多数项目中出于安全原因大多数文件不需要也不应该执行.

解决这种情况的正确方法是分别处理文件夹权限和文件权限,如下所示:

如果你这样做你就不需要用core.fileMode,除了在非瑺罕见的环境中

我要回帖

更多关于 changed同人文 的文章

 

随机推荐