web-dev-qa-db-ja.com

git pull用のパスワードでコマンドを入力するにはどうすればいいですか?

私は一行でこのコマンドを実行したいです。

git pull && [my passphrase]

どうやってするの?

118
Anton Medvedev

これはまさにあなたが求めたものではなく、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エージェントを使用します。これには、コンピュータ上で鍵を生成し、公開鍵をリモートサーバーに格納し、秘密鍵を関連する鍵ストアに追加する必要があります。

129
eis

コマンドラインでhttps接続の認証情報を指定する方法が1つ見つかりました。 git pullするための完全なURLを指定し、そこに資格情報を含めるだけです。

git pull https://username:[email protected]/my/repository

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

93
holgero

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

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)

あなたの資格情報は要求された時間の間メモリに保存されます。

30
Jivan

Gitクレデンシャルヘルパー "store"が 暗号化されていないパスワードを保存する する方法がGit 2.5以降で変更されていることに注意してください(2014年第2四半期)。
commit 17c7f4d by Junio C Hamano(gitster を参照してください。

credential-xdg

指定されている場合は、XDG構成ファイルの場所を尊重するために、信任状ヘルパーのサンプル "store"バックエンドを微調整します。

ドキュメントは今言う:

指定しない場合

  • 信任状は~/.git-credentialsおよび$XDG_CONFIG_HOME/git/credentialsから検索されます。
  • 認証情報が存在する場合は~/.git-credentialsに書き込まれ、存在する場合は$XDG_CONFIG_HOME/git/credentialsに書き込まれます。
4
VonC