Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否所有版本控制信息都包含在.git文件夹中?如果我保留这个文件夹,我能做什么?_Git_Version Control - Fatal编程技术网

是否所有版本控制信息都包含在.git文件夹中?如果我保留这个文件夹,我能做什么?

是否所有版本控制信息都包含在.git文件夹中?如果我保留这个文件夹,我能做什么?,git,version-control,Git,Version Control,我正在尝试使用git跟踪软件配置文件的实验。该软件在多个纯文本(XML)文件(它是Freeswitch)中包含整个配置 我已经安装了软件,然后用git init,git add-A和git commit将其配置放在git下。后来我做了几次git add-A和git commit,标记了我所做的一些更改 然后我将.git目录保存在安全的地方,并完全重新安装软件。有时是同一版本(同一配置文件结构),有时是另一版本 我可以将.git目录放回原位吗?我可以执行以下操作: 1) 是否将旧配置(当前位于.g

我正在尝试使用
git
跟踪软件配置文件的实验。该软件在多个纯文本(XML)文件(它是Freeswitch)中包含整个配置

我已经安装了软件,然后用
git init
git add-A
git commit
将其配置放在
git
下。后来我做了几次
git add-A
git commit
,标记了我所做的一些更改

然后我将
.git
目录保存在安全的地方,并完全重新安装软件。有时是同一版本(同一配置文件结构),有时是另一版本

我可以将
.git
目录放回原位吗?我可以执行以下操作:

1) 是否将旧配置(当前位于
.git
中)作为分支,然后将新配置(当前)作为新分支


2) 修改我在旧配置中以文本方式所做的所有更改,检查它们是否适用于新配置,并逐个应用它们?

整个git存储库存储在
.git
文件夹中。工作目录中发生的事情根本不重要。即使您删除了所有内容,您仍然可以通过运行
git checkout
返回您提交给git的任何修订

我认为你几乎可以做任何你想做的事情:

  • 是的,您可以将旧配置和新配置作为同一存储库中的不同分支。我建议您在初始提交后启动新配置的分支,我想这是软件附带的默认配置
  • 如果您已将所有更改单独提交给旧配置,则可以使用
    git cherry pick
    将它们逐个应用于新配置的分支
  • 你应该以这样的方式结束:

    default -> change1 -> change2 -> change3 -> change4 (oldconfig)
        \
         -> change1 --> change4 -> change5 (newconfig)
    

    在这里,我假设在添加新的
    change5

    之前,从
    oldconfig
    分支选择
    change1
    change4
    ,以及如何创建分支,使配置文件保持完整?许多示例都需要签出,签出意味着替换所有工作文件,对吗?看看这个问题:如果您对
    default
    commit执行此操作,您应该能够从那里启动
    newconfig
    分支。