【问题标题】:Is there a way to make a file "ungitable"?有没有办法使文件“不可编辑”?
【发布时间】:2016-03-26 14:21:16
【问题描述】:

我正在做一个服务器,我真的很想把它放在github上,但是我有一个包含哈希密码的文件,出于安全原因不想把这个文件放在网上。

我提交工作时通常会做的事情是:

git add *
git commit -m "message"
git push

现在,如果我在我的服务器项目上这样做,密码文件也会被上传!有没有办法让我在输入这些命令时不会上传密码文件?

【问题讨论】:

  • 你可以“忽略”那个文件。

标签: git file permissions


【解决方案1】:

在存储库的根目录中创建一个.gitignore 文件,并将您不想提交的文件的路径(相对于存储库的根目录)放入其中。然后 git 将在所有操作中忽略该文件。

您可以阅读更多有关如何执行此操作的信息here。该页面底部还有一些指向示例文件的链接。

【讨论】:

    【解决方案2】:

    将文件添加到.gitignore,这样它就不会被 git 检测到。

    如果您仍希望存储库中的文件(例如使用默认值),则应在跟踪文件上使用 assume-unchanged 标志。

    https://git-scm.com/docs/git-update-index

    --[no-]假设不变

    指定此标志后,为路径记录的对象名称不会更新。
    相反,此选项设置/取消设置路径的“假定未更改”位。

    当“假设不变”位打开时,用户承诺不更改文件并允许 Git 假设工作树文件与索引中记录的内容匹配。如果要更改工作树文件,则需要取消设置以告知 Git。在处理 lstat(2) 系统调用非常慢(例如 cifs)的文件系统上的大型项目时,这有时会很有帮助。

    如果需要修改索引中的这个文件,Git 将失败(优雅地),例如合并提交时;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2021-08-03
      • 1970-01-01
      • 2012-08-20
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多