git - Cygwin git 删除可执行标志
问题描述
我正在使用cygwin git。存储库中的文件是部分可执行的,有时是因为有人不小心设置了可执行标志,有时是因为它是故意应该是可执行的 shell 脚本。当我克隆存储库 cygwin git 之后列出了具有更改权限的可执行文件:可执行标志已被删除。所以我最终得到了很多更改的文件而实际上没有做任何事情。在其他线程中,我看到了通过 git 配置中的 filemode=false 关闭文件权限处理的建议。但我想知道是否没有其他解决方案。使用 cygwin shell 权限似乎很好。只有 git 将文件权限列出为已更改。
解决方案
这听起来像是人们试图将 git 用作(某种)部署工具的常见错误。Git 是一个 VCS - 版本控制系统。它记录对源代码的更改,这是它的主要目的。特定于部署的东西,例如文件权限、从源文件构建的输出文件 (dll)、特定于环境的配置文件等,不应使用 git 进行版本控制,因为这不是源代码的一部分。这是部署过程的一部分。这个答案一开始听起来令人沮丧,但是一旦你停止使用 git 来做它不是设计的东西,你会找到很多更好的工具,并且结合起来,我希望你最终会让每个工具都能完成它的工作完美,它的设计方式,使您的开发/部署过程的压力大大减轻。
推荐阅读
- css - 仅更改速记属性的一部分
- python - 如何从python中的数组列表中删除一个数组
- elasticsearch - 如何在 ElasticSearch Head Chrome 扩展中运行术语查询?
- postgresql - Postgres 12:为什么存储过程在运行多次后开始变慢
- python - 如何修复此错误:需要以下参数:--in-path、--out-path
- r - 基于单选按钮输入更新叶绿素图
- pyspark - 动态填充pyspark数据框中列中的行
- arrays - React - useState Hook with Context Api - 无法将状态数组复制到另一个状态数组
- arduino - esp8266 请求 esp8266 http 服务器代码 -1 (Arduino IDE)
- java - 从数组列表中获取数据