删除 Git 中的“基本”分支

ABC*_*lus 5 git git-branch

最初,有master分支。

然后我从master创建了一个feature_1分支,以实现功能 1

在这个新分支上做了一些工作之后,我决定实现功能 2,它依赖于功能 1,所以我这样做了:

$ git checkout -b feature_2 feature_1  
Run Code Online (Sandbox Code Playgroud)

我在feature_2分支上做了一些工作。

现在,继续在feature_1分支上进行开发是没有意义的,因为它的所有开发都包含在feature_2分支中。

删除feature_1分支是否“安全”,即使它是我启动feature_2分支的基础?删除后,我会在 Git 图中看到从master分支开始的单个feature_2分支吗?

我想要实现的是上面写的,当我启动feature_1分支时,从master分支开始的单个feature_2分支。最后,将其重命名为feature_1_2分支。

gzm*_*zm0 1

做:

# Delete branch feature_1
git branch -d feature_1

# Rename feature_2 -> feature_1_2
git branch -m feature_2 feature_1_2
Run Code Online (Sandbox Code Playgroud)

如果你想确保没有额外的工作feature_1(即不在 中的提交feature_2),你可以进行快进合并:

git checkout feature_1
git merge --ff-only feature_2
Run Code Online (Sandbox Code Playgroud)

如果合并成功,feature_1feature_2指向同一个commit。因此删除其中之一是安全的。