web-dev-qa-db-ja.com

git pushのコマンドのユーザー名とパスワード

コマンドでユーザー名とパスワードを指定して、gitリポジトリのクローンを作成することができます。例:

git clone https://username:[email protected]/file.git

プッシュ時にユーザー名とパスワードも指定することは可能ですか?そのため、たとえば、git Push Origin --allを実行すると、パスワードの入力を求められます。これを1つのコマンドで実行します。

(キーやその他のソリューションをセットアップできることは知っていますが、1つのコマンドでユーザー名とパスワードを使い続ける方法があるかどうか知りたいです。)Windows 8.1でGit Bashを実行しています。

71
Jake

はい、できます

git Push https://username:[email protected]/file.git --all

この場合、https://username:[email protected]/file.gitgit Push Origin --allOriginを置き換えます

git Pushのその他のオプションを確認するには、git help Pushを試してください

111
number5

私は以下の形式を使用しました

git Push https://username:[email protected]/file.git --all

パスワードまたはユーザー名に@が含まれる場合は、%40に置き換えます

6
Hamidreza

Git documentation によると、git Pushコマンドの最後の引数は、プッシュ先のリポジトリにすることができます:

    git Push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
             [--repo=<repository>] [-f | --force] [--Prune] [-v | --verbose] [-u | --set-upstream]
             [<repository> [<refspec>…]]

repositoryパラメーターは、URLまたはリモート名のいずれかです。

したがって、cloneコマンドの例と同じ方法でユーザー名とパスワードを指定できます。

3
Alexey Orlenko

可能ですが、git 2.9.3(2016年8月)より前では、git Pushはクローンリポジトリにプッシュバックするときに使用される完全なURLを出力します。
ユーザー名とパスワードが含まれます!

しかし、これ以上: commit 68f3c07 (2016年7月20日)、および commit 882d49c (2016年7月14日)by Jeff King(peff を参照してください。
浜野潤夫-gitster- in commit 71076e1 、2016年8月8日)

Push:ステータス出力のURLを匿名化します

コミット47abd85(フェッチ:保存する前にURLからユーザー名を削除、2009-04-17、Git 1.6.4) URLを匿名化するためのフェッチを教えました。
主な目的は、マージコミットメッセージにパスワードを貼り付けないようにすることでしたが、副作用として、stderrにパスワードを出力することも避けています。

プッシュ側にはマージコミットの問題はありませんが、おそらくstderrへの出力を避けるべきです。同じ匿名化関数を再利用できます。

これを起動するには、コマンドラインまたはgit configファイルに資格情報を表示する必要がありますが、どちらも特に安全ではありません。
そのため、人々は代わりにクレデンシャルヘルパーの使用に切り替える必要があります。これにより、この問題はなくなります。

しかし、何らかの理由でURLに埋め込まれた資格情報を使用することになった人々の状況を改善しない理由はありません。

3
VonC

そのようなURLを使用する場合、Gitはパスワードを保存しません。代わりに、ユーザー名を保存するだけなので、次回パスワードの入力を求めるだけで済みます。 manual で説明したように、パスワードを保存するには、外部資格情報ヘルパーを使用する必要があります。 Windowsの場合、 GitのWindows資格情報ストア を使用できます。このヘルパーは、デフォルトで GitHub for Windows にも含まれています。

パスワードを使用すると、パスワードが自動的に記憶されるため、一度入力するだけで済みます。そのため、クローンを作成すると、パスワードの入力を求められます。その後、リモートとのすべての通信でパスワードの再入力は求められません。代わりに、資格情報ヘルパーはGitに認証を提供します。

もちろん、これはhttpsを介した認証でのみ機能します。 sshアクセス([email protected]/repository.git)にはSSHキーを使用し、ssh-agent(またはplinkを使用している場合はPuTTYのページェント)を使用して覚えておくことができます。

3
poke