git manager可以从不同的文件夹中读取文件吗

git manager可以从不同的文件夹中读取文件吗,git,Git,我想在Github的一个repo中管理所有配置文件 例如,我有3个文件夹:folderA、folderB、folderC folderA有一个文件: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中,有

我想在Github的一个repo中管理所有配置文件

例如,我有3个文件夹:folderA、folderB、folderC

folderA有一个文件: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中,有一个配置

当我对folderB做同样的事情时

我收到一个错误,说我必须先将回购克隆到本地

错误:无法将某些引用推送到“xxxxxx”
提示:更新被拒绝,因为远程包含您所做的工作
提示:本地没有。这通常是由另一个存储库推送引起的
提示:指向同一引用。您可能希望首先集成远程更改
提示:(例如,“git pull…”)然后再推。
提示:有关详细信息,请参阅“git push--help”中的“关于快进的说明”。
这就是问题所在, 我不想在我的文件夹中有一份回购协议, 只需将文件夹中的一个文件推送到远程repo

配置文件夹到处都是,里面还有其他文件


对我来说,对每个conf文件进行repo也不是一个好的选择。

听起来你想要的是管理多个配置文件,但拥有一个覆盖所有文件的大型、全局性存储库是不现实的。例如,如果他们都住在
/etc
的不同地方

使用Git可以做到这一点,但它需要一种稍微不同的方法。您可以在另一个位置(例如,在您通常存储存储库的位置)创建一个存储库,并根据需要将所有配置文件放置在该位置。然后可以使用脚本或Makefile将修改后的版本安装到正确的位置。如果无法阻止它们在当前位置被修改,可以使用脚本将它们从该位置复制到repo中,然后根据需要提交它们

这是许多人处理个人dot文件的方法,因为他们可能不希望整个主目录都是Git存储库。然后,他们可以使用脚本将文件复制到主目录中的正确位置


如果您正在寻找一种解决方案,可以跨多种系统处理更广泛的配置文件,您可能更喜欢Puppet这样的配置管理系统。

您可以将这些文件夹放在一个git存储库中。正如我前面提到的,文件夹无处不在。要改变这一点几乎是不可能的。