我想在Github的一个repo中管理我的所有配置文件。
例如,我有3个文件夹:文件夹A、文件夹B、文件夹C
文件夹A有文件:confA
folderB有文件:confB
folderC有文件:confC
在文件夹A
git init
git remote add origin repoURL
git add confA
git commit -m "adding confA"
git push -u origin master
现在在Github的repo中,有configA
当我对folderB 做同样的操作时
我收到一个错误,说我必须先将repo克隆到本地。
error: failed to push some refs to 'xxxxxx'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这就是问题所在,我不想在我的文件夹中有repo的副本,只需将文件夹中的一个文件推送到远程repo即可。
配置文件夹无处不在,其中还有其他文件。
对于我来说,每个conf文件的repo也不是一个好的选择
听起来您想要的是管理多个配置文件,但使用一个覆盖所有文件的大型总体存储库是不切实际的。这方面的一个例子可能是,如果他们都住在/etc
的不同地方。
使用Git可以做到这一点,但它需要一种稍微不同的方法。您可以在另一个位置(例如,通常存储存储库的位置(创建一个存储库,并将所有配置文件随意放置在那里。然后,您可以使用脚本或Makefile将修改后的版本安装到正确的位置。如果无法阻止它们在当前位置被修改,您可以使用一个脚本将它们从该位置复制到repo中,然后根据需要提交它们。
这是许多人对他们的个人点文件采取的方法,因为他们可能不想让他们的整个主目录成为Git存储库。然后,他们可以使用脚本将文件复制到主目录中的正确位置。
如果您正在寻找一种在各种系统中处理更广泛配置文件的解决方案,您可能更喜欢Puppet这样的配置管理系统。