如何为文档创建空分支

时间:2015-02-02 15:09:00

标签: git git-branch

办公室里有几台Linux服务器。我想保留一些设置变化的记录。因此我认为将所有配置文件放在GIT中是个好主意。

我想要的设置如下: 裸存储库 - > configuration.git 为我们放置目录结构和配置文件的每个服务器都有一个分支。

我无法找到如何做到这一点。在某处我用--orphan读了一些东西,但不知怎的,我最终得到了master和MASTER分支,并且我的配置文件没有空分支。 我想要一个没有历史记录且没有链接到主人的空分支。

有人能指出我正确的方向吗?

3 个答案:

答案 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)

您必须执行以下操作:

  1. 创建您的configuration存储库
  2. 对于服务器server01,请创建分支server01

    git symbolic-ref HEAD refs/heads/server01
      rm -f .git/index
      git clean -fdx

  3. 重要:您现在必须向此分支添加并提交内容。

  4. 对下一个服务器重复2.

  5. 之后您只需执行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(和分支)。请尝试以下步骤:

  1. 切换到包含配置文件的根目录。确保此目录 not 包含在主分支的repo或任何其他已存在的git repo中。
  2. 输入git init。这会将您的目录初始化为Git存储库
  3. 输入git add ..。这将添加您的目录中的所有配置文件以供Git跟踪。如果您只想要某些文件,可以使用git add [filename]添加它们。
  4. 您现在可以开始使用Git了。默认分支是master,但您可以创建所需的任何分支,并提交更改。