当前位置: 首页 > 面试题库 >

使用Git保留文件权限

罗心思
2023-03-14
问题内容

我想按照我的Web服务器的版本控制中所述,通过在Web服务器上创建gitrepo来对[Web服务器进行版本控制/var/wwwdirectory。我希望我能够将Web内容从我们的开发服务器推送到github,再将其拉到我们的生产服务器,并在剩下的一天中度过。

显然,我的计划中的一个缺点是Git不尊重文件权限(我还没有尝试过,仅现在就阅读它。)我想这很有意义,因为不同的盒子可能具有不同的用户/组设置。但是,如果我想强制传播权限,知道我的服务器配置相同,我是否有其他选择?还是有一种更简单的方法来实现我的目标?


问题答案:

git-cache-meta在SO问题中提到“混帐-如何恢复混帐认为该文件是文件权限”(和git的FAQ)是更staightforward方法。

这个想法是在.git_cache_meta文件中存储文件和目录的权限。
它是一个单独的文件,未在Git存储库中直接进行版本控制。

这就是为什么它的用法是:

$ git bundle create mybundle.bdl master; git-cache-meta --store
$ scp mybundle.bdl .git_cache_meta machine2: 
#then on machine2:
$ git init; git pull mybundle.bdl master; git-cache-meta --apply

那么你:

  • 捆绑您的仓库,并保存相关的文件权限。
  • 将这两个文件复制到远程服务器上
  • 在此处恢复仓库,并申请许可


 类似资料:
  • 问题内容: 我想知道如何创建一个jar文件,该文件保留其内容的文件权限。 我将源文件和可执行文件打包在一个jar文件中,该文件将在使用前提取。人们应该能够通过运行批处理/ shell脚本文件立即运行示例和演示。然后,他们应该能够修改源代码并重新编译所有内容。 我正在努力使使用它的人过上轻松的生活,其中包括Java和编程的新手,他们可能正在Linux / Unix上工作。 我可以访问运行Window

  • 问题内容: 我用Java编写了一个小的复制工具,用于复制USB记忆棒上的.mp3文件。复制新文件时,会保留一些文件属性,但不会保留创建时间。 要复制文件,我使用: 所以我的问题是,有没有办法节省文件创建时间?如果没有,我想我建立了一个用Windows robocopy复制的类。 问题答案: 如果您使用的是Java 7+,则可以使用: 如果那没有复制创建时间(在我的机器上也是如此),您也可以手动设置

  • 我很难理解为什么在从tar文件中提取文件后无法打开它们。当我试图打开或读取刚刚从tar中提取的文件内容时,我会收到一条“访问被拒绝”错误消息。我正要在StackOverflow上发布这个问题,这时我终于发现我做错了什么。我想我会把这个问题和答案张贴给将来需要它的人。简单的解决方案是只使用Perl Tar以外的东西,但是。。。 ~~~问题~ ~~ 提取tar文件的内容。如果您在尝试打开或读取刚刚从t

  • 我想用C重命名并保留源文件。我用这个来重命名文件。 例如: 重命名(source_file.txt,destination_file.txt); 在这里,我想保留source_file.txt.默认情况下,这个函数会删除source_file并将其保存为destination_file。

  • 如果你默认使用Markdown编辑器编辑文档,但是文字中存在一些 Markdown 的保留字。 例如: 表中中出现 | 需要输入 ` 需要成对的出现 [ ] >和<也是需要转义后才能显示。 等等,一些特殊需求。可以通过unicode编码来解决。 将要输入的字符进行转义,之后使用转义字符即可。 常见转义字符: 原字符 转义字符 | | ` ` ] ] [ [ > &gt; < &lt; @ @ #

  • 问题内容: 我需要使用Selenium和保留我的缓存。我有一个Firefox配置文件,并在启动时加载了它: 这可以按预期的方式工作,但 不会 复制缓存。转到,它是空的。我想保留我的缓存,我想直接使用我的个人资料。当前复制并使用配置文件的一部分,但不使用缓存。 使用时如何保持缓存? 问题答案: 找出解决方案。 使用此方法加载配置文件不起作用: 对我来说,这确实有效: 现在,我有了正确的完整缓存。