将文件保存在远程,但通过Git克隆repo将忽略该特定文件

时间:2015-04-02 08:06:19

标签: git github gitignore

我有几个配置文件,我想保留在GitHub上,但忽略了进一步的更改。通过忽略进一步的更改我的意思是"如果有人克隆了回购,他们将获得这些文件的默认版本并可以在本地编辑,但是当运行git status时,这些文件将不会出现。"

所以我到目前为止所做的/尝试是:

  1. 我添加这些文件并对GitHub进行初始提交/推送。
  2. 稍后将这些文件添加到.gitignore并再次提交给GitHub。 但是当有人克隆该回购时,这些文件仍会被跟踪。
  3. 然后我尝试了两个选项:

    1. git rm --cached .
      git add .
      git commit .....`  
      
    2. 但是在这种情况下,后来的提交实际上删除了那些文件。

      1. 尝试git update-index --assume-unchanged [filepath]但它有效,但我不希望有人克隆回购然后再运行此命令。没有这个命令有没有办法实现我的目标?

1 个答案:

答案 0 :(得分:0)

总结:

我认为这是不可能的,因为它违反了git的构成。 但是有一些解决方法。

  1. 将默认设置管理为远程存储在远程仓库和版本控制下的远程复制副本,例如config.php-dist(config.php.dist)用于分发,并将config.php添加到.gitignore以及稍后从远程仓库克隆后,将该文件重命名为config.php,并在本地调整设置。由于config.php已添加到.gitignore,因此本地设置副本永远不会显示 在git status list。
  2. 或维护用于管理不同环境的不同设置的.env文件,根据环境从config.php文件中读取这些数据,如下所示:https://github.com/laravel/laravel