1698

GitHubアカウントからPCにGitリポジトリのクローンを作成しました。

PCとラップトップの両方で作業したいのですが、1つのGitHubアカウントで作業します。

PCを使用してGitHubにプッシュまたはプルしようとすると、ユーザー名とパスワードが必要になりますが、ラップトップを使用している場合は必要ありません。

を操作するたびにユーザー名とパスワードを入力したくありません origin。ここで何が欠けていますか?

4

27 に答える 27

2303

一般的な原因は、SSH ではなくデフォルト (HTTPS) を使用した複製です。これを修正するには、リポジトリに移動し、[クローンまたはダウンロード] をクリックしてから、URL フィールドの上にある [SSH を使用] ボタンをクリックし、オリジン リモートの URL を次のように更新します。

git remote set-url origin git@github.com:username/repo.git

以下を使用して、リモートを HTTPS または SSH として追加したかどうかを確認できます。

git remote -v

これは GitHub: Switching remote URLs from HTTPS to SSHで文書化されています。

于 2011-07-03T21:25:15.443 に答える
527

Git リポジトリでの永続的な認証

次のコマンドを実行して、資格情報のキャッシュを有効にします。

$ git config credential.helper store
$ git push https://github.com/owner/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

また、キャッシュの有効期限を指定する必要があります。

git config --global credential.helper 'cache --timeout 7200'

資格情報のキャッシュを有効にすると、7200 秒間 (2 時間)キャッシュされます。

于 2015-02-17T13:30:23.063 に答える
156

私はちょうど同じ問題に遭遇しました、そして私が見つけた最も簡単な解決策はHTTPSのものの代わりにSSHURLを使うことでした:

ssh://git@github.com/username/repo.git

そしてこれではありません:

https://github.com/username/repo.git

andの代わりにSSHキーだけで検証できるようになりました。usernamepassword

于 2012-06-14T07:19:46.493 に答える
131

SSH への変更とは別に、パスワードを平文で入力してもかまわない場合は、HTTPS を引き続き使用することもできます。これをあなた~/.netrcに入力すると、ユーザー名/パスワードを要求されません (少なくとも Linux と Mac では):

machine github.com
       login <user>
       password <password>

追加(VonC の 2 番目のコメントを参照): Windows では、ファイル名は%HOME%\_netrc.

暗号化したい場合は、VonC の最初のコメントもお読みください。

Git 1.7.10 以降を使用している場合に使用できる別の追加(user137717 のコメントを参照) 。

クレデンシャル ヘルパーを使用して Git に GitHub パスワードをキャッシュします

HTTPS を使用して GitHub リポジトリのクローンを作成している場合は、資格情報ヘルパーを使用して、Git が GitHub と通信するたびに GitHub のユーザー名とパスワードを記憶するように指示できます。

これは、Linux、Mac、および Windows でも機能します。

于 2013-01-19T19:08:12.817 に答える
100

以前の回答に混乱している初心者のために、次のことができます。

git remote -v

次のような応答が返されます

origin    https://yourname@github.com/yourname/yourrepo.git (fetch)
origin    https://yourname@github.com/yourname/yourrepo.git (push)

次に、他の多くの人が提案したコマンドを実行できますが、上記の yourname と yourrepo を知っているので、yourname/yourrepo.git上記からカットアンドペーストするだけです:

git remote set-url origin git@github.com:yourname/yourrepo.git
于 2014-02-13T17:22:07.707 に答える
53

ソース: Git のセットアップ

次のコマンドは、しばらくの間パスワードをメモリに保存します ( Git 1.7.10以降の場合)。

$ git config --global credential.helper cache
# Set git to use the credential memory cache

$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after one hour (setting is in seconds)
于 2013-09-01T02:55:12.197 に答える
42

Git のプルとプッシュにhttpsを使用する場合はremote.origin.url、プッシュのたびにユーザー名 (または/およびパスワード) を入力しないように、プロジェクトを構成するだけです。

設定方法remote.origin.url

URL 形式:
    https://{username:password@}github.com/{owner}/{repo}

URL のパラメーター:

* username
必要に応じて使用するユーザー名 (オプション)。
認証、 指定した場合、認証が必要なときにユーザー名を再度入力する必要はありません。 電子メールは使用しないでください。「@」を含まないユーザー名を使用してください。そうしないと、URL を正しく解析できません。 * パスワード オプション。認証が必要な場合に使用するパスワード。 指定すると、認証が必要なときにパスワードを再入力する必要がなくなります。 ヒント: この値はプレーン テキストとして保存されるため、セキュリティ上の理由から、このパラメーターを指定しないでください。 * 例えば git config remote.origin.url https://eric@github.com/eric/myproject

@Update - 使用ssh

セットアップ手順はもう少し複雑ですsshが、プロトコルを使用することは よりも優れたソリューションだと思います。https

大まかな手順:

  • コマンドを使用して ssh キーを作成します。たとえばssh-keygen、Linux では、Windows ではmsysgit同様のコマンドが提供されます。
  • 秘密鍵は、ローカル マシンの適切な場所 (例: ) に保管してください~/.ssh。コマンドを使用して ssh エージェントに追加しますssh-add
  • 公開鍵を Git サーバーにアップロードします。
  • remote.origin.urlGit リポジトリのsshスタイルへの変更(例:git@gitlab.com:myaccount/myrepo.git
  • その後、プルまたはプッシュするときに、ユーザー名またはパスワードを入力する必要はありません。

チップ:

  • ssh キーにパスフレーズがある場合、デフォルトでは、マシンを再起動するたびにキーを初めて使用するときにパスフレーズを入力する必要があります。

@Update -httpssshプロトコルを切り替えます。

単純に変更するだけで十分ですが、直接remote.origin.url編集して値を変更することもできます ( Linux での使用など)。repo_home/.git/configvi

通常、プロトコルごとに行を追加し、#.

例えば

【リモート「オリジン」】
        URL = git@gitlab.com:myaccount/myrepo.git
        # URL = https://myaccount@gitlab.com/myaccount/myrepo.git
        フェッチ = +refs/heads/*:refs/remotes/origin/*
于 2013-12-25T15:42:15.540 に答える
17

GitHub パスワードを Git にキャッシュできます。

GitHub の公式ドキュメントの指示に従ってください。

上記のリンクの指示に従うと、毎回ユーザー名/パスワードを入力しなくても、リポジトリにプッシュ/プルできるようになります。

于 2014-12-19T05:29:36.867 に答える
13

私にとってうまくいったのは、編集.git/configして使用することでした

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

これが安全でないパスワードの保存方法であることは言うまでもありませんが、これが問題にならない環境やケースもあります。

于 2016-07-31T18:25:58.237 に答える
6

SSH の代わりに HTTPS のクローンを作成し、プル、プッシュ、フェッチ時にユーザー名とパスワードのプロンプトで問題に直面している場合。この問題は、UBUNTU で簡単に解決できます。

ステップ 1: ルート ディレクトリに移動する

cd ~/

ファイル .git-credentials を作成します

このコンテンツをそのファイルに追加してusename passwordgithosting URL

https://user:pass@example.com

次に、コマンドを実行します

git config --global credential.helper store

これで、プッシュをプルして、レポからすべての詳細を簡単にフェッチできるようになります。

于 2019-11-01T07:04:17.503 に答える
4

HTTPS の更新:

GitHub は、HTTPS を使用しているときに資格情報を保存する Windows 用の新しいプログラムを開始しました。

使用するには:

  • プログラムのダウンロードはこちらから

  • プログラムを実行すると、.gitconfigファイルが編集されます。.gitconfigそれらが複数ある場合は、正しいものを編集したかどうかを再確認してください。正しいものを編集しなかった場合は、次を追加します.gitconfig

    [credential]
        helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'
    

    の後の改行に注意して[credential]ください。必須です。

  • コマンド ライン クライアントを開いて、git push origin master一度試してみてください。パスワードの入力を求められた場合は、入力して完了です。パスワードを保存しました!

于 2013-04-05T06:02:00.537 に答える
4

基本的に 2 つのオプションがあります。

両方のマシンで同じユーザーを使用する場合は、.pub キーを PC にコピーする必要があります。これにより、GitHub はあなたが同じユーザーであることを認識します。

PC 用に新しい .pub ファイルを作成し、それらのマシンを別のユーザーとして扱いたい場合は、新しい .pub ファイルを GitHub Web サイトに登録する必要があります。

それでもうまくいかない場合は、ssh が正しく構成されておらず、ssh がキーの場所を見つけられないことが原因である可能性があります。試す

ssh -vv username@github.com

SSH が失敗する理由の詳細を取得するには。

于 2011-07-03T21:32:24.550 に答える
0

多くのユーザーが言っているように、Git リポジトリの URL を HTTPS から SSH に変更するだけです。

マシンで SSH キーを生成していない場合は、それを行う必要があります。

追加情報として、この変更を行った後も同じエラーが発生しました。

アクセス拒否。

私の場合、問題は、Windows シェルを使用して ngh コマンドを実行していたことです。このコマンドは、SSH フレーズを要求するプロンプトを開く必要がありますが、Windows シェルはこれらの種類のプロンプトを開かないため、認証は失敗しました。

そのため、Git シェルを開いてそこで ngh コマンドを実行し、要求されるたびに SSH フレーズをプロンプトに入力して「出来上がり」...うまくいきました!

于 2018-04-03T14:16:35.470 に答える
0

Windows で Git (Git Bash など) を使用している場合 (および HTTPS から SSH に切り替えたくない場合) は、Git Credential Manager for Windows を使用することもできます。

このアプリケーションは、ユーザー名とパスワードを保持します...

于 2014-06-11T13:08:17.813 に答える