git how to disable push [duplicate]

2019-01-29 16:22发布

问题:

This question already has an answer here:

  • Git: Set up a fetch-only remote? 4 answers

I am using git and I am doing my development work, which I don't want to push, even by mistake. Is there a method to disable push in certain local repository. One method is to rename the branch, another is to undo push if one does it by mistake, but I hope there should be a more direct method.

回答1:

The following command will let pulls work, but pushes will try to use the URL no_push and fail:

git remote set-url --push origin no_push


回答2:

Depending on the remote, you may be able to reset its URL to use the read-only Git protocol instead of SSH or HTTPS. E.g., for a project on GitHub, do

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

where <remote> is commonly origin. git remote -v will give you a list of remotes; those that start with https or have the form <user>@<host>:<path> usually allow pushing.



回答3:

In git 2.0, git branch --unset-upstream will prevent git push working against the current branch. (This will also work in versions of git >= 1.8, if push.default is set to either upstream or simple.)

# 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

(Note that git push origin master will still work; this merely blocks the abbreviated git push. It probably also prevents git status indicators that appear in the shell prompt from indicating that you are ahead of or behind the remote.)



标签: git push