23

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

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

如果我删除该分支,最初对父分支所做的提交会发生什么情况?

4

2 回答 2

17

怎么了?没有什么。

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

但是,查看手册页git branch,这似乎更容易:

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

和:

-m
--move

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

-M

即使新的分支名称已经存在,也要移动/重命名一个分支。

于 2013-10-15T12:23:42.030 回答
1

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

把所有的补丁都弄出来后,去 master 并创建一个新的分支。

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

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

于 2013-10-15T12:19:45.947 回答