我正在使用git,我正在进行我的开发工作,我不想推,即使是错误的。是否有一种方法可以在某些本地存储库中禁用推送。一种方法是重命名分支,另一种方法是undo push,如果一个人错误地做了,但我希望应该有一个更直接的方法。
答案 0 :(得分:263)
以下命令将允许拉取工作,但推送将尝试使用URL no_push
并失败:
git remote set-url --push origin no_push
答案 1 :(得分:7)
根据远程,您可以重置其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>
的人通常允许推送。
答案 2 :(得分:-3)
在git 2.0中,git branch --unset-upstream
会阻止git push
对当前分支进行操作。 (如果push.default
设置为upstream
或simple
,这也适用于git&gt; = 1.8的版本。)
# git push works
$ git push
Everything up-to-date
# unset upstream
$ git branch --unset-upstream
# git push fails
$ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
(注意git push origin master
仍然可以工作;这只会阻止缩写git push
。它可能还会阻止shell提示符中出现的git状态指示符指示您位于远程控制器的前面或后面。)