web-dev-qa-db-ja.com

git pushを空実行して、リモートへの書き込み権限があるかどうかを確認するにはどうすればよいですか?

ドライランする方法はありますかgit Pushユーザーが実際に新しいリモートブランチを作成する権限を持っているかどうかを知るには?実際に実行する前に完全な実行をドライ実行できるように、ユーザーが実際に作成される前に新しいブランチを作成しようとする多数のリポジトリの権限に関してすべてが適切であることを確認できるようにしたいと思います。

14
David

Shawn Pierce 書いたgit Push --dry-run

--dry-runは、クライアントが使用するコマンドをクライアントからサーバーに送信しないので、サーバーは、それらを受け入れるかどうかをクライアントに通知できません。全体 --dry-runクライアント側のみです。

(私の強調)

したがって、リモートへの書き込み権限があるかどうかを確認する方法がある場合は、git Push --dry-runは間違いなくそうではありません。

17
jub0bs

自分のシナリオではうまくいかないと思った場所で、テストの回答として投稿しました。私はそれ以上の変更なしに別のブランチからブランチを作成しています

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'
2
David