【问题标题】:How can one dry run a git push to check whether one has write permissions to a remote?如何空运行 git push 来检查一个人是否对远程有写权限?
【发布时间】:2014-10-13 17:50:30
【问题描述】:

有没有办法干运行git push 以了解用户是否有权实际创建新的远程分支?我希望能够验证关于一堆存储库的权限是否一切正常,用户将在实际创建新分支之前尝试创建新分支,以便我可以在实际执行之前空运行完整的执行。

【问题讨论】:

标签: git user-permissions


【解决方案1】:

Shawn Piercewrote以下关于git push --dry-run

--dry-run 不会发送客户端将从客户端使用的命令 到服务器,所以服务器不能告诉客户端它是否会接受它们 或不。整个--dry-run 只是客户端

(我的重点)

所以,如果有办法检查一个人是否对远程有写权限,git push --dry-run 肯定不是。

【讨论】:

    【解决方案2】:

    在我认为它不适用于我的场景的测试中发布作为答案。我正在从另一个分支创建一个分支,无需进一步更改

    git clone ....
    git checkout master
    git branch -f test master
    git push --dry-run origin test
    

    即使我在此服务器/repo 组合上的推送权限为零,它也通过了

    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'
    

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 2020-10-04
      • 2019-01-18
      • 2015-09-04
      • 2019-01-22
      • 1970-01-01
      • 2011-06-06
      • 2016-04-23
      • 2021-05-13
      相关资源
      最近更新 更多