从Git中排除文件,同时在本地保留更改

时间:2014-04-06 10:58:07

标签: git

让我们设置以下场景:

我们是一个由我们每个人编写自己的操作系统(OSX和Ubuntu)的开发人员组成的小团队。应用程序代码中的某些配置文件适用于其中一个系统,而其他配置文件则是特定的。我们在Github上共享相同的代码库,但是我们不想混合配置文件(也是为了防止意外行为),并且只在本地存储它们以满足需要它们的特定机器。

显然,一种方法是将这些目录添加到git ignore文件中,但这样你也可以排除该文件的错误修正;它似乎不是一个更好的解决方案。

是否有一种更好的方法来对文件进行更改,同时确保不必在每次提交时手动排除它,在分支之间保持本地更改并仍然接收“更新”?

1 个答案:

答案 0 :(得分:1)

创建并跟踪配置文件的所有系统特定版本,例如:

project/
    config1.osx.txt
    config1.linux.txt
    config2.osx.txt
    config2.linux.txt

然后,每个开发人员将根据需要在他们自己的系统上创建一个符号链接到相应的配置文件:

$ ln -s config1.osx.txt config1.txt
$ ln -s config2.osx.txt config2.txt

但是这些符号链接在.gitignore中会被忽略(当然,也会被跟踪):

# .gitignore
config1.txt
config2.txt

如果所有这些额外文件都会产生混乱,可以将它们放入子目录(例如" config"),然后从那里进行符号链接。