プライベートGithubリポジトリの複製


226

私が取り組んでいるプロジェクトのGithubにプライベートリポジトリがあります。これまでは、ホームデスクトップでしか作業していませんでしたが、ラップトップを購入して、どちらのコンピューターからでもプロジェクトで作業できるようにセットアップし、変更をプッシュ/プルします。

私は新しいSSHキーをラップトップのGithubアカウントに追加し、私がセットアップしたパブリックテストリポジトリの複製と変更に成功しました。しかし、プライベートリポジトリのクローンは作成できませんでした。プライベートリポジトリのクローンを作成するためにコマンドラインで特別に行う必要があることはありますか?ラップトップ用に新しいGitHubアカウントを設定し、自分をコラボレーターとして設定する必要がありますか?

私が使ったコマンドは git clone git://github.com/myusername/reponame.git


3
ローカルでプライベートリポジトリのクローンを作成するためにどのコマンドを使用しましたか?どのようなエラーが発生しましたか?
Ron DeVera 2010年

回答:


171

プライベートクローンURLは形を取るgit@github.com:username/repo.git-おそらくあなたが使用するために必要なgit@のではなくgit://

git:// URLは読み取り専用であり、プライベートリポジトリはこの形式のアクセスを許可していないようです。


はい-「https://」ではなく「git@github.com:」を使用すると問題が解決しました。実際、私は同時に2FAを有効にしましたが、それはそれとは何の関係もありませんでした。
レオ

148

これは私のために働きました:

git clone https://username@github.com/username/repo_name

もちろん、これはSSHキーをGithubに追加した後です。必要に応じて、CentOsサーバーでこれを使用しました。


4
これをありがとう。しかし、なぜこれが機能するのかはわかりません。パスワードを要求されることはありませんでした。https経由でgit cloneして、sshキーを変更する必要がありますか?私はそうは思わなかった。
2016年

1
Ubuntuでプライベートリポジトリをダウンロードできるようになりました。
NinoŠkopac16年

なぜこれが機能するのにgit@github.com:username / repo.gitが機能しないのですか?
diimdeep

@diimdeep Gitおよびその他のツールは、多くの場合、リモートリポジトリのファイルにアクセスするためにgit:プロトコルを使用します。一部のファイアウォール構成がgit:// URLをブロックしているため、リポジトリのクローンを作成したり、依存関係をダウンロードしようとしたときにエラーが発生します。(たとえば、企業ファイアウォールはgit:をブロックすることで「悪名高い」です。)この問題が発生した場合は、代わりにhttps:の使用を強制できます。次のコマンドを実行します:git config --global url。 "https:// ".insteadOf git://
charlchad 2017年

1
場合によっては、パスワードの入力を求められてからアクセスを拒否された場合は、GitHubログインパスワードの代わりに「パーソナルアクセストークン」を提供する必要があることが原因である可能性があります。[1] help.github.com/articles/which-remote-url-should-i-use [2] help.github.com/articles/...
デビッドWiniecki

71

これは私のために働きました:

git clone https://username:password@github.com/username/repo_name.git

5
これは特殊文字のパスワードでは問題があり、パスワードをログに残し、もう機能しないようです
pcnate

5
これを試してください-アカウントのパスワードを入力するように求められます。パスワードが履歴やログに漏洩する心配はありません。git clone https://username@github.com/username/repo_name.git
Vinay

64

この問題に何度か遭遇し、このページにたどり着くたびに、すべてを試し、失敗しました!

2FAが有効になっているからです!!!

https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabledによると

2要素認証を有効にしている場合  、またはSAMLシングルサインオンを使用する組織にアクセスしている場合は   、HTTPS Gitのパスワードを入力する代わりに、個人用アクセストークンを提供する必要があり  ます

  1. フォローこのリンクをしてアクセストークンを作成します
  2. git clone https://github.com/username/repo_name.git (デフォルトのgit repoリンクで十分です!)
  3. ユーザー名を入力し、アクセストークンをパスワードとして使用してください!!

更新:

  • コマンドラインでアクセストークンを公開してもかまわない場合は、アクセストークンをユーザー名として貼り付け、Enterキーを押します(パスワードは不要)。
  • アクセストークンを何度もコピーして貼り付けるのが嫌いですか?
    使用git config credential.helper store(信頼できないマシンではこれを行わないでください)

Windowsを使用している場合は、github.com / microsoft / Git-Credential-Manager-for- Windowsをインストールできます。次に、プライベートリポジトリのクローンを作成すると、GithubログインのUIウィンドウが表示されます。また、2FAコードを入力することもできます。Githubの認証情報は安全に保存されます。
Jirik

18

Git for Windowsを使用すると、HTTPS URLを使用する方が簡単です。

次にgitシェルを開きgit clone https://github.com/user/repoます。プロンプトが表示されたら、ユーザー名とパスワードを入力します。SSHキーを設定する必要はありません。


1
私は、セットアップのsshを持っていないの簡素化に同意する
フェリックス・ガニオン-グルニエ

他のコメントに同意します。HTTPSURLを使用するだけで、WindowsまたはUbuntuで完全に機能します(116.04で試してみました)
greg_data

18

私にとっての解決策は:

git clone https://myusername@restoftherepolink.git

ここでは、リポジトリの所有者である必要がありますが、所有していない場合は、次のようになります

git clone https://myusername@github.com/ownersusername/repo_name.git

あなたがしている2FA enabled場合:

  1. 右上のプロファイルアイコンから設定に移動するか、https://github.com/settings/profileにアクセスします
  2. 下のタブに移動するかに行くhttps://github.com/settings/tokens
  3. ここで最後のタブを開きます個人トークン。そしてトークンを生成する
  4. トークンをコピーして実行する git clone https://myusername@restoftherepolink.git

パスワードの入力を求められたら、そのトークンをここに入力します。 トークン生成画像はこちら


1
そのURIを持つパブリックリポジトリがない場合、gitはユーザー名/パスワードを要求するように見えるので、最初のコマンドは正しい
pcnate

8

会社(プライベート)アカウントと2要素認証が有効になっているため、以下のように機能させるためにいくつかの投稿を組み合わせる必要がありました。(同じ状況の人に役立つかもしれないので、書き留めます)

Initially it was the Fatal Error. 
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:

ここに記載されているように、資格情報マネージャーをインストールし、GITを更新しました:https : //codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/

次のようにcloneコマンドを使用しようとしたときに問題が下に移動したため、問題は解決しませんでした。

$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

remote: Invalid username or password.
fatal: Authentication failed for 'https://

私のパスワードには$記号が含まれており、何らかの理由でGITコマンドライン/ GIT Bashはそれを好みませんでした。返されたテキストに$記号が含まれていないエラーでこれを確認できます。

fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'

私はこのサイトを参照する必要がありました:https : //git-scm.com/book/en/v2/Git-Tools-Credential-Storage

注意:Windows Credential Managerのアカウントに誤ったパスワードが保存されて いる場合も、問題が発生します。この方法で保存されたgithubクレデンシャルを削除してから、次のステップに進みます。

$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

これで、Windows資格情報マネージャーがポップアップしました。テキストボックスにユーザー名とパスワードを入力し($記号の付いたパスワードを受け入れました)、2要素認証コードの入力を求めました。Google Authenticatorからの認証コードを入力すると、クローンは完全に始まりました。


ドル記号$は、Unixでは予約文字です。$シンボルに続く文字列と同じ名前の変数値の取得の開始をマークします。

Windows資格情報を削除すると、問題が解決しました。
マイケル・ラリオノフ

6

2FAが有効なプライベートリポジトリからクローンを作成する場合、従う必要がある簡単な手順があります

  1. Gitアカウントに移動します
  2. [設定]-> [開発者設定]-> [パーソナルアクセストークン]に移動します
  3. [新しいトークンを生成]をクリックします
  4. 必要なタイトルと機能を備えたトークンを作成します
  5. プライベートリポジトリを複製する場合は、git clone repoNameを使用して、ユーザー名を入力した後、パスワードとして個人用アクセストークンを指定します。

プライベートリポジトリの認証失敗のエラーメッセージが表示されたら、同じ手順に従います


5

Macの回答に応じて、github repoページでSSHクローンURLを取得するには、URLをクリックSSHYou can clone with HTTPS, SSH, or Subversion.てコピーします。



3

MK Yungの回答に加えて、403 Forbidden応答を受け取りたくない場合は、デプロイする場所の公開鍵をリポジトリのデプロイキーに追加してください。


3

まず、SSHキーがあることを確認するか、https//help.github.com/articles/generating-ssh-keys/で生成して ください

キーを取得したら、https//github.com/settings/sshでgithubアカウントに追加する必要があります

Windowsユーザーの場合、管理者としてgit bashを実行すると便利です。

これで、ユーザー名とパスワードを入力しなくても、クローンがプライベートリポジトリ(レポ)で機能するようになります。



1

新しく使用したコンピューターに、このコマンドを実行する別の資格情報がある場合

git clone https://github.com/username/reponame.git

直接は動作しません。Gitは保存された資格情報を使用しようとし、ユーザー名とパスワードの入力を求めません。資格情報が一致しないため、gitが出力さRepository not foundれ、クローン操作は失敗します。以前の資格情報はもう使用しないので、それを削除し、上記のコマンドを再度実行して、必要なユーザー名とパスワードを入力し、プライベートリポジトリを複製することで解決しました。


1

1)以下の形式のユーザー名とパスワードでコマンドを実行してみてください

git clone https://your_username:your_password@github.com/username/reponame.git

他の人がここで述べたように、今問題は私たちのパスワードに特殊文字があるときです。JavaScriptでは、以下のコードを使用して、特殊文字を含むパスワードをUTF-8エンコーディングに変換します。

console.log(encodeURIComponent('password@$123'));

特殊文字を使用してコマンドを実行する代わりに、この生成されたパスワードを使用してください。

これで問題が解決することを願っています。



0

2FAが有効になっておらず、リポジトリにアクセスする権限があり、リポジトリが存在する場合は、git @ github.comが別のアカウントでログインしている可能性があります。

あなたができることを確認する

ssh -T git@github.com

別のアカウントが表示されている場合、この問題を解決するには:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git

次のように表示されますunknown option -T。私のgitバージョンは2.7.4
bvdb

@bvdb私の謝罪、それがされている必要がありますssh -T git@github.com
ケキシン呂

0

でそれを達成したい場合はDockerfile、以下の行が役立ちます。

ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project

次に、以下の引数を使用してビルドできます。

docker build --build-arg git_personal_token={your_token} .

0
git clone https://myusername:mygithubpassword@github.com/myusername/project.git

リポジトリからプライベートリポジトリを使用するときに、そのためのユーザー名とパスワードを渡す必要があります。


これは安全ではありません。複製されたリポジトリは、提供されたhttpリンクを.git / configファイルに保存します。ローカルリポジトリに対して行われたすべてのコミットは、ユーザー名とパスワードを必要とせずにリモートにプッシュできます。あなただけじゃないと大変危険です!!
Tian
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.