问题
I am planning to rename a branch in my git repository. I found out that the easy way to do that is to make a new branch from that branch and give it the desired name.
After that I want to delete the old branch (the parent). But I'm afraid that I will lose data in my new branch if I do that.
What happens with the commits originally made to the parent branch if I delete that branch?
回答1:
What happens? nothing.
If you create a branch where another is, you can "delete" that other branch without losing anything. A branch (HEAD) is just a pointer to a commit.
As long as those commits are referenced by a branch HEAD (or are part of the branch HEAD ancestors), they aren't lost.
And even if they are no longer referenced by any branch or tag, they are still in the local reflog for (by default) 90 days.
But, looking at the man page for git branch, this seems easier:
git branch (-m | -M) [<oldbranch>] <newbranch>
With:
-m
--move
Move/rename a branch and the corresponding reflog.
-M
Move/rename a branch even if the new branch name already exists.
回答2:
Simply use git format-patch origin -o {output_folder}
.
After getting all the patches out, go to the master and create a new branch.
Then apply those patches as so: git am {output_folder}/{patch_name}.patch
.
Then after verifying you didn't loose any info, you can delete the old branch with git Branch -D {name_old_branch}
来源:https://stackoverflow.com/questions/19380840/what-happens-in-the-child-branch-if-i-delete-a-parent-branch-in-git