如果我在git中删除父分支,子分支会发生什么

时间:2013-10-15 12:08:37

标签: git version-control git-branch

我打算在我的git存储库中重命名一个分支。我发现这样做的简单方法是从该分支创建一个新分支并为其指定所需的名称。

之后我想删除旧分支(父分支)。但是如果我这样做的话,我担心我的新分支会丢失数据。

如果删除该分支,最初对父分支进行的提交会发生什么?

2 个答案:

答案 0 :(得分:11)

会发生什么?什么都没有。

如果您创建另一个分支,则可以“删除”其他分支而不会丢失任何内容。分支(HEAD)只是提交的指针 只要这些提交被分支HEAD引用(或者是分支HEAD祖先的一部分),它们就不会丢失。
即使它们不再被任何分支或标记引用,它们仍然在本地reflog中(默认情况下)为90天。

但是,看看man page for git branch,这似乎更容易:

 git branch (-m | -M) [<oldbranch>] <newbranch>

使用:

-m
--move
  

移动/重命名分支和相应的reflog。

-M
  

即使新分支名称已存在,也可以移动/重命名分支。

答案 1 :(得分:1)

只需使用git format-patch origin -o {output_folder}

在获得所有补丁后,转到主人并创建一个新分支。

然后应用这些补丁:git am {output_folder}/{patch_name}.patch

然后在验证您没有丢失任何信息后,您可以使用git Branch -D {name_old_branch}删除旧分支