git 如何同步删除的分支?

mgdq6dx1  于 2022-11-27  发布在  Git
关注(0)|答案(1)|浏览(269)

我有“main”和“refactoring”这样的分支。我在“refactoring”中做了我需要的修改,并在“main”中创建了一个pull请求并接受了它。现在“refactoring”分支碍事了。我从GitHub界面中删除了它。现在我怎么在本地同步呢?这样“refactoring”分支就不会出现在本地仓库中了?直到今天,我只想在本地删除“重构”分支,就这样。但是我觉得这是错误的,并决定找出正确的方法。我如何保持我的本地分支与远程仓库中的分支同步?
谢谢你!

sqxo8psd

sqxo8psd1#

不幸的是,Git不会自动修剪本地分支。你可以使用git fetch -p来修剪本地 tracking 分支,比如remotes/origin/refactoring,但是它不会为你删除普通的refactoring分支。如果Git要删除那些上游引用已经消失的分支,那么就有数据丢失的风险。你不希望你的本地数据因为远程发生了一些事情而消失。
因此,手动删除分支是适当的:

$ git fetch
<see a message that the remote branch 'refactoring' has been deleted>

$ git branch -d refactoring

如果接受PR涉及到压缩提交或重写提交历史,那么你需要强制删除:

$ git branch -D refactoring

(Note虽然我理解Git的行为,但我不喜欢它。我不是在为它辩护,只是在解释它。

相关问题