179

このコマンドを1行で実行したい:

git pull && [my passphrase]

どうやってするの?

4

10 に答える 10

196

これはあなたが求めていたものではありませんが、http(s)の場合:

  • パスワードは.netrcファイル(Windowsでは_netrc)に入れることができます。そこから自動的にピックアップされます。600のアクセス許可を持つホームフォルダに移動します。
  • リポジトリのクローンを作成することもできますがhttps://user:pass@domain/repo、多くの場所でユーザー/パスが表示されるため、実際にはお勧めしません...
  • 新しいオプションは、クレデンシャルヘルパーを使用することです。クレデンシャルは、標準のクレデンシャルヘルパーを使用して、ローカル構成にクリアテキストで保存されることに注意してください。wincredを使用したcredential-helperは、Windowsでも使用できます。

クレデンシャルヘルパーの使用例

  • git config credential.helper store-クレデンシャルを無期限に保存します。
  • git config credential.helper 'cache --timeout=3600'-60分間保管

sshベースのアクセスの場合、必要に応じてsshキーを提供するsshエージェントを使用します。これには、コンピューターで鍵を生成し、公開鍵をリモートサーバーに保存し、秘密鍵を関連する鍵ストアに追加する必要があります。

于 2012-07-16T14:15:54.980 に答える
167

コマンドラインでhttps接続のクレデンシャルを提供する1つの方法を見つけました。git pullの完全なURLを指定し、そこにクレデンシャルを含める必要があります。

git pull https://username:password@mygithost.com/my/repository

以前にクレデンシャルを使用してリポジトリのクローンを作成する必要はありません。これは、クレデンシャルがで終わらないことを意味します.git/config。(ただし、シェルがあなたを裏切って、コマンドラインを履歴ファイルに保存しないようにしてください。)

于 2015-08-05T14:54:33.653 に答える
50

質問に直接答えることはありませんが、基本的に、リモートサーバーをプルするたびにパスワードを再入力しない方法を探しているときにこの質問を見つけました。

ええと、gitあなたは有限の時間の間あなたの資格情報をキャッシュすることを可能にします。それはでカスタマイズ可能でgit configあり、このページはそれを非常によく説明しています:

https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

ターミナルで、次を実行します。

$ 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 1 hour (setting is in seconds)

その後、クレデンシャルは要求された期間メモリに保存されます。

于 2016-04-29T23:39:39.377 に答える
13

以下のcmdは、パスワードに@がない git pull https://username:pass@word@mygithost.com/my/repository 場合に機能します。パスワードに@がある場合は、以下に示すように%40に置き換えます。 git pull https://username:pass%40word@mygithost.com/my/repository

于 2020-07-09T17:39:40.103 に答える
12

クレデンシャルヘルパーコマンドラインオプションの使用:

git -c credential.helper='!f() { echo "password=mysecretpassword"; }; f' fetch origin
于 2020-11-18T20:05:32.547 に答える
9

私はこれを通過したばかりなので、 Gitlabアクセストークンを使用することになったので、答えを提供しましたが、 Githubアクセストークンが必要な場合もあります

SSHを使用したいのですが、それを妨げるgitlabのバグがあります。パスワードを.netrcまたはURLに入れるのは理想的ではありません。サーバーの再起動時に資格情報マネージャーを再起動する必要がありますが、これは理想的ではありません。

したがって、私は次のように使用できるアクセストークンを選択しました。git clone https://<username>:<accessToken>@gitlab.com/ownerName/projectName.git

アクセストークンはURLとともに保存されるため、これは安全ではありませんが、アクセストークンは特定の操作に制限され、簡単に取り消すことができるため、username:passwordを使用するよりも安全です。

クローンが作成されると(またはURLが手動で更新されると)、すべてのgitリクエストはURLに保存されるため、アクセストークンを使用します。

これらのコマンドは、すでに複製したリポジトリを更新する場合に役立つことがあります。

git remote show origin

git remote remove origin

git remote add origin https://<username>:<accessToken>@gitlab.com/ownerName/projectName.git

編集:以下のコメントを必ず確認してください。重要なメモを2つ追加しました。

于 2021-03-12T19:45:09.273 に答える
8

パスワードはgitbashでプロンプトが表示されるため、パスワードを使用する必要はなく、ユーザー名を使用できます。

git pull https://username@github.com/username/myrepo
于 2020-08-27T12:10:06.093 に答える
5

gitクレデンシャルヘルパー「store」が暗号化されていないパスワードを保存する方法は、Git 2.5以降(2014年第2四半期)で変更されることに注意してください。濱野純夫によるコミット17c7f4d
を 参照gitster

credential-xdg

クレデンシャルヘルパーのサンプル" store"バックエンドを微調整して、指定されたときにXDG構成ファイルの場所を尊重します。

ドキュメントは今言う:

指定されていない場合:

  • ~/.git-credentialsクレデンシャルは、および$XDG_CONFIG_HOME/git/credentials、から検索されます。
  • クレデンシャルは~/.git-credentials、存在する場合、または$XDG_CONFIG_HOME/git/credentials存在し、前者が存在しない場合に書き込まれます。
于 2015-05-12T08:15:17.077 に答える
4

Googleとstackoverflowをしばらく検索した後、質問に対する答えが見つからなかったので、ここで解決策を共有したいと思います。

git config --global credential.helper "/bin/bash /git_creds.sh"
echo '#!/bin/bash' > /git_creds.sh
echo "sleep 1" >> /git_creds.sh
echo "echo username=$SERVICE_USER" >> /git_creds.sh
echo "echo password=$SERVICE_PASS" >> /git_creds.sh

# to test it
git clone https://my-scm-provider.com/project.git

私もWindowsでやりました。ここで完全な答え

于 2020-12-07T15:40:19.213 に答える
3

GitlabのCI/CDスクリプトでこれを実行しようとしている場合(gitlab-ci.yml)。あなたが使うことができます

git pull $CI_REPOSITORY_URL

これは次のように変換されます:

git pull https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.gi

そして、それが使用するトークンはエフェメラル/ジョブごとのトークンであると確信しています。したがって、このメソッドのセキュリティホールは大幅に減少します。

于 2020-10-19T15:52:39.723 に答える