在Git中删除一个"base"分支

5
最初,有一个名为master的分支。
然后我从master创建了一个名为feature_1的分支来实现功能1
在这个新分支上进行一些工作后,我决定实现功能2,它依赖于功能1,所以我执行了以下操作:
$ git checkout -b feature_2 feature_1  

我在feature_2分支上做了一些工作。
现在,继续在feature_1分支上开发已经没有意义了,因为feature_2分支中包含了所有feature_1分支的开发内容。
即使feature_1分支是我开始feature_2分支的基础,删除它是否“安全”?删除后,我能看到一个从master分支开始的单个feature_2分支吗?
我想要实现的是上述内容,即一个从master分支开始的单个feature_2分支,起点与我开始feature_1分支时相同。最后,将其重命名为feature_1_2分支。

这个回答解决了你的问题吗?如果我在Git中删除父分支,子分支会发生什么? - Martin Backasch
2个回答

1

做:

# Delete branch feature_1
git branch -d feature_1

# Rename feature_2 -> feature_1_2
git branch -m feature_2 feature_1_2

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

git checkout feature_1
git merge --ff-only feature_2

如果合并成功,feature_1feature_2将指向相同的提交。因此,安全起见可以删除其中一个。

删除分支feature_1是否完全安全,即使feature_2是由它创建的? - ABCplus
是的。除非你在开始 feature_2 后对 feature_1 进行了工作。 - gzm0
不,这是一个“死路”。 - ABCplus
我添加了一些更多的Git命令,以确保您不会丢失任何工作。 - gzm0

0

我认为如果你删除 feature_1,那么你的 feature_2 将会丢失。所以先提交 feat2,然后再删除 feat1。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接