我有“main”和“refactoring”这样的分支。我在“refactoring”中做了我需要的修改,并在“main”中创建了一个pull请求并接受了它。现在“refactoring”分支碍事了。我从GitHub界面中删除了它。现在我怎么在本地同步呢?这样“refactoring”分支就不会出现在本地仓库中了?直到今天,我只想在本地删除“重构”分支,就这样。但是我觉得这是错误的,并决定找出正确的方法。我如何保持我的本地分支与远程仓库中的分支同步?谢谢你!
sqxo8psd1#
不幸的是,Git不会自动修剪本地分支。你可以使用git fetch -p来修剪本地 tracking 分支,比如remotes/origin/refactoring,但是它不会为你删除普通的refactoring分支。如果Git要删除那些上游引用已经消失的分支,那么就有数据丢失的风险。你不希望你的本地数据因为远程发生了一些事情而消失。因此,手动删除分支是适当的:
git fetch -p
remotes/origin/refactoring
refactoring
$ git fetch <see a message that the remote branch 'refactoring' has been deleted> $ git branch -d refactoring
如果接受PR涉及到压缩提交或重写提交历史,那么你需要强制删除:
$ git branch -D refactoring
(Note虽然我理解Git的行为,但我不喜欢它。我不是在为它辩护,只是在解释它。
1条答案
按热度按时间sqxo8psd1#
不幸的是,Git不会自动修剪本地分支。你可以使用
git fetch -p
来修剪本地 tracking 分支,比如remotes/origin/refactoring
,但是它不会为你删除普通的refactoring
分支。如果Git要删除那些上游引用已经消失的分支,那么就有数据丢失的风险。你不希望你的本地数据因为远程发生了一些事情而消失。因此,手动删除分支是适当的:
如果接受PR涉及到压缩提交或重写提交历史,那么你需要强制删除:
(Note虽然我理解Git的行为,但我不喜欢它。我不是在为它辩护,只是在解释它。