我知道如何删除已经合并到主分支的分支 (http://stevenharman.net/git-clean-delete-already-merged-branches)。但是,如果这些分支被压缩后再合并到主分支中,该怎么删除呢?
例如:
C:\source [master]> git checkout -b feature-a-inprogress
C:\source [feature-a-inprogress]> git ac "WIP"
C:\source [feature-a-inprogress]> git ac "WIP"
C:\source [feature-a-inprogress]> git checkout master
C:\source [master]> git checkout -b feature-a-complete
C:\source [feature-a-complete]> git merge --squash feature-a-inprogress
C:\source [feature-a-complete]> git ac "Completed Feature A"
C:\source [feature-a-complete]> git push origin feature-a-complete
当我运行以上的清理操作时,它会删除Feature-A-Complete,但不会删除Feature-A-InProgress。如果您比较Feature-A-Complete和Feature-A-InProgress的当前状态,它们将是相同的(尽管它们的历史记录不同)。
我知道删除Feature-A-InProgress并不一定安全,因为中间版本会丢失,但在这种情况下,我不关心,因为最终状态已提交到主干。
谢谢!
编辑:修正了示例中不一致的分支名称。
git checkout master; git merge --squash feature-a-inprogress
而不是创建一个无用的中间分支呢? - user229044ac = !git add --all . && git commit -am
,并且所有东西都通过Github拉取请求进行,所以没有人直接修改主分支。 - Stevegit branch -D feature-a-done
?(或者feature-a-complete
?) - Ry-ac
别名的习惯很糟糕。理想情况下,你应该花时间仔细地编写提交记录,而不是随意暂存和提交东西。 - jub0bs