git如何禁用push

时间:2012-04-21 15:27:27

标签: git push

我正在使用git,我正在进行我的开发工作,我不想推,即使是错误的。是否有一种方法可以在某些本地存储库中禁用推送。一种方法是重命名分支,另一种方法是undo push,如果一个人错误地做了,但我希望应该有一个更直接的方法。

3 个答案:

答案 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>通常是origingit remote -v将为您提供遥控器列表;那些以https开头或格式为<user>@<host>:<path>的人通常允许推送。

答案 2 :(得分:-3)

在git 2.0中,git branch --unset-upstream会阻止git push对当前分支进行操作。 (如果push.default设置为upstreamsimple,这也适用于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状态指示符指示您位于远程控制器的前面或后面。)