问题
Is there a way to dry run a git push
to know whether the user has permissions to actually create a new remote branch? I'd like to be able to verify that all is good in regards to permissions for a bunch of repos where the user will attempt to create new branches before they are actually created so that I can dry run the full execution before actually doing it.
回答1:
Shawn Pierce wrote the following about git push --dry-run
:
A
--dry-run
doesn't send the commands the client would use from client to server, so the server can't tell the client if it would accept them or not. The entire--dry-run
thing is client side only.
(my emphasis)
So, if there is a way to check whether one has write permissions to a remote, git push --dry-run
is definitely not it.
回答2:
Posting as an answer on the test I did where I don't think it works in my scenario. I'm creating a branch form another one without further changes
git clone ....
git checkout master
git branch -f test master
git push --dry-run origin test
and it passed even though I have zero push permissions on this server/repo combo
To ssh://<server>/repo
* [new branch] test -> test
Pushing without dry-run hits the error condition I was expecting
git push origin test
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://<server>/repo
! [remote rejected] test -> test (can not create new references)
error: failed to push some refs to 'ssh://<server>/repo'
来源:https://stackoverflow.com/questions/25403573/how-can-one-dry-run-a-git-push-to-check-whether-one-has-write-permissions-to-a-r