リモートGitリポジトリへの書き込みアクセスを確認するにはどうすればよいですか(「プッシュできますか?」)


83

私は(やや制限された)Gitクライアントを構築しています。リポジトリを設定するには、リモートリポジトリへのURLを入力します。ユーザーがそのリポジトリへの読み取り+書き込みアクセス権を持っているかどうかを確認したいと思います。そうでない場合は、認証ダイアログを表示します。

「読み取り」アクセスを確認しgit ls-remote <url>ます。

最初にリポジトリのクローンを作成せずに、「書き込み」アクセスをチェックする類似の方法はありますか?(私はできることを知っていますgit clone <url>そしてそれからgit push --dry-run


2
技術的には、コミットをリポジトリにプッシュするために、最初にクローンを作成する必要はありません。ただし、コミットのチェーンのプッシュとリモート参照の更新は2つの異なる操作であり、前者にはアクセス許可があり、後者にはアクセス許可がない場合があることに注意してください。また、特定の参照は変更できない可能性があります。
user3159253 2014

この投稿では、クローンを作成したときに書き込みアクセスを確認する方法として「gitpush--dry-run」について説明しています。ただし、一部のリモコンでは、パスワードプロンプトが開き、無期限にハングします。リポジトリのクローンがある場合でも、書き込みアクセス権があるかどうかを確認する非対話型の方法はないようです。gitリポジトリのクローンがある場合、どうすればgitリポジトリへの書き込みアクセスを確認できますか?
rektide

非常に簡単に確認する方法は、リポジトリのメインコードページのREADME.MDの右上に編集用の「鉛筆」アイコンが表示されているかどうかです(トップレベルのファイル/フォルダーのリストが長い場合は、下にスクロールしてください)。 。もちろん、Githubにログインしているときにこれを行います。
スパイク

回答:


61

gitレポジトリがgithubにある場合は、レポジトリ内の任意のファイルを開き、[編集]をクリックすると、githubは次のように表示されます。

書き込みアクセス権がないプロジェクトのファイルを編集しています。提案された変更をコミットするために、このプロジェクトのフォークを作成しました。このファイルに変更を送信すると、フォーク内の新しいブランチに書き込まれるため、プルリクエストを送信できます。ここにコードを入力してください


21
あなたは間違っていません-Githubは確かにこの振る舞いを示しています。ただし、OPはgit ls-remote、新しいツールで使用できるものに類似したものを要求したため、Github WebUIはおそらくそれらに適していないでしょう。
RJHunter 2016年

11
ちょうどgithubのリポジトリよりもgitのリポジトリがあります;)
ルネ・ロス

4
GUIに関しては、ツールチップは、アクセスがない場合に「編集」または「フォークしてから編集」できるかどうかを示すこともできます。これは、Github固有名詞とGHEnterpriseの両方に当てはまります。
スコット

1
リポジトリをフォークすると、リポジトリ全体がコピーされますよね?レポは非常に大きくなる可能性があります。それはちょうどあなたのアクセスレベルが何であるかをチェックするためにはかなり多額の操作のように思える...
カイルデラニー

2
@KyleDelaney編集ボタンをクリックする必要はありません。カーソルを合わせるだけです。書き込みアクセス権があるかどうかに応じて、「このファイルを編集」または「このプロジェクトのフォークでファイルを編集」と表示されます。
joulev

3

git push git+ssh://host.org/path/to/repo some_refクローンを作成せずに実行できます。しかし、上記の私のコメントを参照してください


2
このメソッドは、refを使用して作業ディレクトリから機能します。ダミーリポジトリを設定して最初にコミットを作成せずにこれを行う方法はありますか?
ヤンマイヤー

15
ええ、誰がこれらすべてのランダムなダミーコミットを望んでいますか?よりクリーンな方法はありませんか?
ダンボルサー2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.