【发布时间】:2012-05-02 20:53:14
【问题描述】:
我正在使用 git,我正在做我的开发工作,我不想推动,即使是错误的。有没有办法在某些本地存储库中禁用推送。一种方法是重命名分支,另一种是undo push,如果做错了,但我希望应该有更直接的方法。
【问题讨论】:
-
请不要将其作为重复项删除,使用 Google 查找标题措辞比“原始”问题更容易。
我正在使用 git,我正在做我的开发工作,我不想推动,即使是错误的。有没有办法在某些本地存储库中禁用推送。一种方法是重命名分支,另一种是undo push,如果做错了,但我希望应该有更直接的方法。
【问题讨论】:
以下命令可以让拉取工作,但推送会尝试使用 URL no_push 并失败:
git remote set-url --push origin no_push
【讨论】:
git config branch.<branch-name>.remote no_push。但是如果分支是本地开发分支,有自己的名字,真的有问题吗?默认情况下它不会被推送(git push 默认情况下没有参数只推送本地和远程都存在的分支),即使你推送它,你只是在远程创建一个新分支你可以及时删除。
git config -l 来验证/获得更好的理解。 (如果它不存在,它就没有发生;-))。更好的结构,使用cat .git/config
git remote set-url --push upstream no_push。更改前后用git remote -v查看效果。
根据远程,您可以重置其 URL 以使用只读 Git 协议而不是 SSH 或 HTTPS。例如,对于 GitHub 上的项目,执行
git remote set-url <remote> git://github.com/Team/Project.git
其中<remote> 通常是origin。 git remote -v 会给你一个遥控器列表;以https 开头或格式为<user>@<host>:<path> 的通常允许推送。
【讨论】:
set-url 之后添加--push 来修改推送。但我认为,this more recent answer 让您将来回到这个问题时的意图更加清晰。