推送至Fork仓库时如何避免触发上游通知并撤销现有通知?
解决Fork仓库个人开发时触发上游推送通知的问题
为什么会触发上游通知?
通常推自己的Fork分支不会给上游仓库发通知,大概率是这两个原因:
- 本地Git配置错误,把代码推到了上游仓库而非自己的Fork;
- 你在Git平台(比如GitHub)上订阅了上游仓库的所有推送事件,Fork的分支推送活动被关联到了上游的订阅通知里。
避免后续推送触发通知的步骤
确认并修正Git远程仓库配置
- 先查看当前远程仓库列表:
git remote -v - 正常情况下,
origin应该是你自己的Fork仓库地址,upstream是原上游仓库地址,且upstream只有拉取(fetch)权限,没有推送(push)权限。如果发现upstream有推送权限,或者你默认推送的是upstream,立刻修正默认推送目标:# 把当前分支的默认推送设为自己的Fork(origin) git push --set-upstream origin <你的分支名> - 之后推送代码时,直接用
git push就会推到自己的Fork,不会触发上游仓库的推送操作。
- 先查看当前远程仓库列表:
调整Git平台的通知订阅设置
进入上游仓库的页面,找到通知设置(比如GitHub的「Watch」按钮),把订阅级别改成「Not watching」或者「Releases only」,取消对推送(Push)事件的订阅。这样自己Fork的任何开发活动都不会再触发上游仓库的通知。
撤销已有的通知
- 如果是误推代码到上游仓库的分支:
立刻删除上游仓库的对应分支:
之后可以给上游仓库管理员发个消息说明情况,避免误会。git push upstream --delete <误推的分支名> - 如果是订阅导致的通知:
已发送的通知无法主动撤销,只能让上游仓库的接收者自行标记忽略。你这边调整订阅后,后续不会再产生这类通知。
内容的提问来源于stack exchange,提问作者anonymous2506
相关产品推荐
相关产品推荐

