2012-04-21 30 views
98

我使用git和我正在做我的開發工作,我不想推,即使是錯誤的。有沒有一種方法來禁用某些本地存儲庫中的推送。一種方法是重命名分支,另一種方法是undo push,如果有人錯誤地這樣做,但我希望應該有一個更直接的方法。git如何禁用推

回答

206

以下命令將讓再換工作,但推動將嘗試使用URL no_push和失敗:

git remote set-url --push origin no_push 
+3

謝謝。如何禁用'只推一個分支'? – user984260 2012-04-21 15:43:11

+5

@ user984260:我想你可以設置遙控器只是該分支:'git config branch。 .remote no_push'。但如果分支是一個本地開發分支,它有自己的名字,這真的是一個問題嗎?它不會被默認推送(默認情況下'git push'沒有參數,只推送本地和遠程存在的分支)即使你按下了它,你也只是在遙控器上創建了一個新的分支,你可以立即刪除它。 – Cascabel 2012-04-21 16:51:51

+0

是的,你說得對,謝謝 – user984260 2012-04-21 19:48:03

6

根據遠程設備的不同,您可以重置其URL以使用只讀Git協議,而不使用SSH或HTTPS。例如,對於在GitHub上項目,做

git remote set-url <remote> git://github.com/Team/Project.git 

其中<remote>通常是origingit remote -v會給你一個遙控器列表;那些以https開頭或具有<user>@<host>:<path>的形式通常允許推送。

+0

對我來說不行!這可以防止拉:(#) – 2018-02-20 04:12:20

-1

在混帳2.0,git branch --unset-upstream將防止git push針對當前分支工作。也許這僅僅是塊縮寫git push它還可以防止;(這也將在混帳的版本一起使用> = 1.8,如果push.default被設置爲upstreamsimple

# 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狀態指示器出現在shell提示符中,表明你在遙控器的前面或後面。)

+16

這也禁用'git pull'。 – orome 2015-02-07 15:12:42