【发布时间】:2013-10-23 05:38:12
【问题描述】:
我打算在我的 git 存储库中重命名一个分支。我发现最简单的方法是从该分支创建一个新分支并为其指定所需的名称。
之后我想删除旧分支(父分支)。但如果我这样做,我担心我会丢失新分支中的数据。
如果我删除该分支,最初对父分支所做的提交会发生什么情况?
【问题讨论】:
标签: git version-control git-branch
我打算在我的 git 存储库中重命名一个分支。我发现最简单的方法是从该分支创建一个新分支并为其指定所需的名称。
之后我想删除旧分支(父分支)。但如果我这样做,我担心我会丢失新分支中的数据。
如果我删除该分支,最初对父分支所做的提交会发生什么情况?
【问题讨论】:
标签: git version-control git-branch
会发生什么?什么都没有。
如果您在另一个分支上创建一个分支,您可以“删除”另一个分支而不会丢失任何内容。分支 (HEAD) 只是指向提交的指针。
只要这些提交被分支 HEAD 引用(或者是分支 HEAD 祖先的一部分),它们就不会丢失。
即使它们不再被任何分支或标签引用,它们仍然在本地reflog 中(默认情况下)90 天。
但是,看看man page for git branch,这似乎更容易:
git branch (-m | -M) [<oldbranch>] <newbranch>
与:
-m
--move
移动/重命名一个分支和相应的引用日志。
-M
即使新分支名称已经存在,也要移动/重命名分支。
【讨论】:
只需使用git format-patch origin -o {output_folder}。
打完所有补丁后,去master创建一个新分支。
然后像这样应用这些补丁:git am {output_folder}/{patch_name}.patch。
然后在确认您没有丢失任何信息后,您可以使用git Branch -D {name_old_branch}删除旧分支
【讨论】:
git format-patch 是保存时间戳和提交之间更改分布的好方法。