リポジトリにプッシュしようとするたびに、両方のusername & password
を要求します。
毎回パスワードを再入力しても問題ありませんが、問題はユーザー名を入力することです。リポジトリのクローンを作成するためにhttps
を使います。
それで、どのように私はそれがそれぞれのgit Push
でusername
を要求しないようにgitを構成することができます。
私はLinuxが初めてですが、WindowsのIIRCではgit Push
がパスワードを要求するだけです。
編集者(モデレータおよびコメントによって提案された@ dk14による)
警告:答えからcredential.helper store
を使用する場合、あなたのパスワードは~/.git-credentials
に完全に暗号化されずに( "現状のまま")保存されます。特にあなたの雇用主が安全保障問題に対する許容度がゼロである場合は、下記のコメント欄または「リンク」欄からの答えを参考にしてください。
たとえ受け入れられたとしても、それはユーザ名だけを除外することについての実際のOPの質問に答えない(パスワードではない)。その正確な問題を抱えている読者のために@ grawity's answer が役に立つかもしれません。
元の回答(@Alexander Zhuによる):
次のコマンドを使ってあなたの資格情報を保存することができます
$ git config credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
また読むことをお勧めします$ git help credentials
ローカルリポジトリの.git/config
ファイルでこれを実現できます。このファイルには「remote」というセクションと「url」というエントリが含まれています。 'url'エントリはあなたが話しているリポジトリのhttpsリンクを含むべきです。
あなたがあなたのユーザ名でホスト 'url'を前に付けるとき、git
はもうあなたのユーザ名を尋ねるべきではありません。これが例です:
url = https://[email protected]
資格情報のキャッシュを有効にするには、次のコマンドを実行します。
$ git config credential.helper store
$ git Push https://github.com/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>
キャッシュの有効期限も指定する必要があります
git config --global credential.helper "cache --timeout 7200"
認証情報のキャッシュを有効にすると、 7200秒(2時間) の間キャッシュされます。
認証情報を読む ドキュメント
$ git help credentials
GitHubのこの記事の説明に従って新しいSSHキーを追加してください 。
それでもGitからユーザー名とパスワードの入力を求められた場合は、リモートURLでhttps://github.com/
を[email protected]:
に変更してみてください。
$ git config remote.Origin.url
https://github.com/dir/repo.git
$ git config remote.Origin.url "[email protected]:dir/repo.git"
私が見つけた最も簡単な方法はこのコマンドを使うことでした:
git config --global credential.https://github.com.username <your_username>
これはサイトごとに機能し、あなたのグローバルgit設定を変更します。
変更を確認するには、次のようにします。
git config --global --edit
Sshの代わりにhttpsを使用している場合は、user701648にあるように.git/config
内の "url"を編集できますが、必要な場合はパスワードも追加できます。
url = https://username:[email protected]
Git設定ファイルに次のようなものを入れることで、与えられたサイトのすべてのリポジトリにあなたのユーザ名を設定することができます。あなたは " https://example.com "と "私"を実際のURLとあなたの実際のユーザー名に変更したいでしょう。
[credential "https://example.com"]
username = me
(これは「git help credentials」から直接です)
Httpの代わりにSSHを使用していることを確認してください。 これ SO回答を確認してください。
クローンレポジトリの変更はうまくいきます:
git remote set-url Origin [email protected]:gitusername/projectname.git
キャッシュされた資格情報を使用することはうまくいきます、そしてタイムアウト期間を設定することは物事をより煩わしくしなくなります。 Windowsの認証情報ヘルパーを使用する場合は、これが最も簡単な方法です(特にSSHがブロックされている場合)。
User701648の回答に加えて、次のコマンドを使用して、プロジェクトフォルダではなく、ホームフォルダ(すべてのプロジェクトに対してグローバル)に資格情報を保存できます。
$ git config --global credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
Git pull、git pull Origin xxx、gitはユーザー名とパスワードの両方を要求します。
git config credential.helper store
できます。
SSH versionを使用しても、パスワードに問題はありません。SSHキーを1回生成するだけで、gitに伝えるために、そのthis pcはthis githubアカウントで動作しますので、(このpcに対する)アクセスについて二度と私に尋ねないでください。
最も簡単な方法は、以下の内容の~/.netrc
ファイルを作成することです。
machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD
(ここに示すように: https://Gist.github.com/ahoward/2885020 )
次のように入力してこのファイルのアクセス権を閉じて、パスワードを他の人が読めないようにすることもできます。
chmod 600 ~/.netrc
git config - global credential.helper cache
$ git config credential.helperストア
$ gitプッシュ/プッシュ https://github.com/xxx.git
それからユーザー名とパスワードを入力してください。
ユーザー名を入力しなくてもパスワードの入力を求められるようにするには、ユーザー名を含めてリポジトリのクローンを作成します。
git clone [email protected]/my_repo.git
作業ディレクトリ内でgitのURLを取得します:
git config remote.Origin.url
その後:
git config credential.helper store
git Push "url of your git"
最後にユーザー名とパスワードを尋ねます
できた。