有没有办法模拟运行 git push
来知道用户是否有权限实际创建新的远程分支?我想要能够在实际创建新分支之前验证用户对一堆存储库的权限是否正常,以便我可以在实际执行之前进行全面的试运行。
有没有办法模拟运行 git push
来知道用户是否有权限实际创建新的远程分支?我想要能够在实际创建新分支之前验证用户对一堆存储库的权限是否正常,以便我可以在实际执行之前进行全面的试运行。
git push --dry-run
的以下内容:
--dry-run
不会将客户端将要发送到服务器的命令发送出去,因此服务器无法告知客户端是否接受这些命令。整个--dry-run
的过程在远程端是只读的:它检查远程端是否有你本地没有的更改,但不会向远程端发送任何更新。
(我强调)
因此,如果想要检查自己是否有写入远程权限的方法,git push --dry-run
绝对不是其中之一。
在我进行的测试中,我认为这种方法在我的情况下不起作用。我正在从另一个分支创建一个分支,但没有进行进一步的更改。
git clone ....
git checkout master
git branch -f test master
git push --dry-run origin test
尽管我在此服务器/存储库组合上没有任何推送权限,但它仍然通过了。
To ssh://<server>/repo
* [new branch] test -> test
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'
git push
的文档https://git-scm.com/docs/git-push中,--dry-run出现作为一个选项:git push [--all | --mirror | --tags] [--follow-tags]
[--atomic] [-n | --dry-run ] ... (more flags)