繁体   English   中英

一旦文件已经在Git中被跟踪,是否有可能忽略它?

[英]Is it possible to ignore a file once it is already tracked in Git?

是否可以一次添加一个虚拟配置文件(以便其他开发人员可以看到该配置文件的外观),然后使用.gitignore文件将其忽略。 然后用可用的配置细节替换虚拟配置细节,这样我就可以继续开发项目并继续提交更改了? 但是原始的虚拟配置文件在Github上会保持不变吗?

这是我尝试的方法:

  • 在Github上创建存储库
  • 创新本地回购协议
  • 拉远程回购
  • 使用Configuration.java将本地仓库推送到github(包含虚拟细节)
  • 将Configuration.java添加到.gitignore文件
  • 将本地仓库推送到github
  • 向Configuration.java添加正确的详细信息
  • 将本地仓库推送到github

但是会跟踪对configuration.java的更改,因此这是行不通的。

如果您只是担心忽略本地开发git update-index --assume-unchanged <file> ,可以使用git update-index --assume-unchanged <file>来忽略对该文件的任何更改。 有关更多详细信息,请参见http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/

您提到:

  1. 使用Configuration.java将本地仓库推送到github(包含虚拟细节)
  2. 将Configuration.java添加到.gitignore文件

问题是,gitignore仅适用于尚未被跟踪的文件,并且由于您已提交,因此gitignore的工作为时已晚。 引用gitignore文档:

gitignore文件指定Git应该忽略的故意未跟踪的文件。 Git已经跟踪的文件不受影响;

如果您想将自己的工作提交到公开可见的仓库中,但又想隐藏诸如连接字符串/密码等敏感信息,请先提交一个虚拟文件。 例如,提交如下内容:

public class Configuration {
    public static final String USERNAME = "someUsername";
    public static final String PASSWORD = "passwordHere";
}

然后,告诉git停止跟踪该文件上的更改,因此您可以在本地修改值,但不会提示您提交这些更改。

git update-index --assume-unchanged path/to/file.txt

有两点要指出:

  • 总是检入一个虚拟的配置文件,不要将其完全遗漏。 如果这样做,当人们签出您的项目而文件丢失时,他们将无法编译该项目! 通过提供一些示例数据来帮助他们。
  • 由于git不再跟踪该文件,因此,如果您要提交要进行的任何修改,则必须手动满足该要求(通过github.com进行,或者重新启用跟踪,修复它,然后禁用跟踪再次)。 为此,请使该文件保持相对较小的状态,只是变量,不要在其中放置可能需要不断更新的逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM