一旦在Git中跟踪了文件,是否可以忽略它?

时间:2015-03-05 17:59:13

标签: java git github

是否可以添加一个虚拟配置文件(以便其他开发人员可以查看配置文件应该如何显示),然后使用.gitignore文件忽略它。然后用工作的替换虚拟配置细节,这样我可以继续开发项目并继续进行更改?但原始的虚拟配置文件在Github上保持不变?

这是我尝试的方法:

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

但是会跟踪对configuration.java的更改,因此这不起作用。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你提到:

  1. 使用Configuration.java将本地repo推送到github(包含dummy 详情)
  2. 将Configuration.java添加到.gitignore文件
  3. 问题在于,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进行,要么重新跟踪,修复它,然后 再次禁用跟踪)。为此,保持该文件相对较轻,只需变量,不要在那里放置逻辑,以便您可能需要不断更新。