办公室里有几台Linux服务器。我想保留一些设置变化的记录。因此我认为将所有配置文件放在GIT中是个好主意。
我想要的设置如下: 裸存储库 - > configuration.git 为我们放置目录结构和配置文件的每个服务器都有一个分支。
我无法找到如何做到这一点。在某处我用--orphan读了一些东西,但不知怎的,我最终得到了master和MASTER分支,并且我的配置文件没有空分支。 我想要一个没有历史记录且没有链接到主人的空分支。
有人能指出我正确的方向吗?
答案 0 :(得分:3)
请记住git checkout --orphan
上的文档中的重要段落:
如果要启动记录一组完全不同的路径的断开连接的历史记录,则应在创建孤立分支后立即清除索引和工作树,方法是运行
git rm -rf .
工作树的顶层。之后,您将准备好准备新文件,重新填充工作树,从其他地方复制它们,提取tarball等。
要为server1启动新分支,请运行
git checkout --orphan server1
git rm -rf .
从那里开始,像往常一样添加和提交,例如,
touch foo.conf
git add foo.conf
git commit -m 'Create foo.conf'
答案 1 :(得分:0)
您必须执行以下操作:
configuration
存储库对于服务器server01
,请创建分支server01
:
git symbolic-ref HEAD refs/heads/server01
rm -f .git/index
git clean -fdx
重要:您现在必须向此分支添加并提交内容。
对下一个服务器重复2.
之后您只需执行git checkout serverXX
即可更改分支。
如果您在master
分支中没有初始提交,那么在此过程之后您将没有master
分支。 (但您可以执行2. master
分支中描述的内容。)
您可以使用
检查结果 git log --graph --branches --decorate
它应该是这样的:
* commit: .... (server01)
Author: Max Muster <max.muster@example.com>
Date: Mon Feb 2 16:00:00 2015 +0100
First commit of server01 branch
* commit: .... (server02)
Author: Max Muster <max.muster@example.com>
Date: Mon Feb 2 16:01:00 2015 +0100
First commit of server02 branch
* commit: .... (server03)
Author: Max Muster <max.muster@example.com>
Date: Mon Feb 2 16:03:00 2015 +0100
First commit of server03 branch
[...]
* commit: .... (HEAD, server99)
Author: Max Muster <max.muster@example.com>
Date: Mon Feb 2 17:00:00 2015 +0100
First commit of server99 branch
答案 2 :(得分:0)
如果Git告诉你你仍然在主分支中,那么这可能意味着你不仅在错误的分支中,而是在错误的存储库。如果我正确读取您的描述,您需要为服务器配置文件单独的repo(和分支)。请尝试以下步骤:
git init
。这会将您的目录初始化为Git存储库git add ..
。这将添加您的目录中的所有配置文件以供Git跟踪。如果您只想要某些文件,可以使用git add [filename]
添加它们。