Gitを使用してHTTPとユーザーパスワードでリモートリポジトリを複製する場合、Windowsで.netrcファイルを使用できますか?
Windowsで
.netrc
ファイルを使用できますか?
はい:する必要があります:
%HOME%
を定義する(Git 2.0より前、Git 2.0以降では不要)_netrc
ファイルを%HOME%
に入れますWindows 7/10を使用している場合、CMD
セッションで次のように入力します。
setx HOME %USERPROFILE%
%HOME%
は「C:\Users\"username"
」に設定されます。
そのフォルダ(cd %HOME%
)に移動して、「_netrc
」というファイルを作成します
注:繰り返しになりますが、Windowsの場合、「_netrc
」ファイルが必要です。notファイルは「.netrc
」ファイルではありません。
その内容は非常に標準的です(<examples>
を実際の値に置き換えてください):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke コメント内の言及:
Windows 7でmsysgitの最新バージョンを使用すると、
HOME
環境変数を設定する必要がありませんでした。_netrc
ファイルだけでうまくいきました。
これは確かに「 「install
」github、.ssh
dir not there :git-cmd.bat
msysgitに含まれていると、%HOME%
環境変数が設定されます。
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者は、「httpプロトコルでは機能しないようだ」というコメントを信じています。
ただし、netrc
はcurl
で使用され、 この例 (ページで 'netrc
'を探してください)に示すように、HTTPプロトコルで機能すると答えました。 HTTPプロトコルでも使用されます: " _netrc
/.netrc
cURL
"の代替。
Windowsでnetrc
をサポートする場合の一般的なトラップは、Origin httpsのURLでユーザー名が指定されている場合、gitはそれを使用しないことです。
たとえば、.git/config
ファイルに次が含まれている場合:
[remote "Origin"] fetch = + refs/heads/*:refs/remotes/Origin /* url = https://[email protected] /p/my-project/
Gitは_netrc
を介して資格情報を解決しません。これを修正して、次のようにユーザー名を削除します。
[remote "Origin"] fetch = + refs/heads/*:refs/remotes/Origin /* url = https://code.google.com/p /私のプロジェクト/
代替ソリューション:gitバージョン1.7.9 +(2012年1月): この回答 from Mark Longairクレデンシャルキャッシュメカニズムの詳細alsoを使用するとnot以下に示すように、パスワードをプレーンテキストで保存します。
Git 1.8. (2013年4月):
暗号化された.netrc(gpg
を使用)を使用できるようになりました。
Windows:%HOME%/_netrc
(_
、 '.
'ではありません)
contrib/
]ファイルと対話するための[新しい読み取り専用資格情報ヘルパー(.netrc/.authinfo
内)が追加されました。
このスクリプトを使用すると、gpgで暗号化されたnetrcファイルを使用できるようになります。
.gpg
拡張子を持つファイルは、解析前にGPGによって復号化されます。
複数の-f
引数は問題ありません。これらは順番に処理され、最初に一致したエントリが資格情報ヘルパープロトコルを介して返されます。
-f
オプションが指定されていない場合、ホームディレクトリ内の.authinfo.gpg
、.netrc.gpg
、.authinfo
、および.netrc
ファイルがこの順序で使用されます。
この資格情報ヘルパーを有効にするには:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Gitはヘルパー名の前に「
git-credential-
」を追加し、パスで探します。)
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
「 https:// github
(を使用するときにパスワードの入力をスキップする方法はありますか?」の完全な例を参照してください
Git 2.18+(2018年6月)では、暗号化された.netrc
ファイルの解読に使用されるGPGプログラムをカスタマイズできるようになりました。
commit 786ef5 、 commit f07eeed (2018年5月12日)by Luis Marsano( ``) を参照してください。
( C浜野順夫-gitster
- in commit 017b7c5 、2018年5月30日)
git-credential-netrc
:gpg
オプションを受け入れます
git-credential-netrc
は、gpg.programオプションに関係なく、 'gpg
'で復号化するようにハードコードされていました。
これは、 'gpg2
'のような現代のGnuPGを別のものと呼ぶDebianのようなディストリビューションの問題です
Git Credential Manager for Windows をインストールして、_netrc
の代わりにWindows資格情報マネージャーにGitパスワードを保存することもできます。これは、パスワードを保存するより安全な方法です。
これにより、Gitは.netrc
を使用してHTTPSで認証されます。
_netrc
で、c:\Users\<username>
にある必要があります。HOME=%USERPROFILE%
という環境変数を設定する必要があります(コントロールパネルの[システム]オプションを使用してシステム全体の環境変数を設定します。Windowsのバージョンによっては、[詳細オプション]を選択する必要があります)。_netrc
ファイルに保存されているパスワードにスペースを含めることはできません(引用符で囲むと機能しません)。_netrc
を使用して、www.course.comサイトから資料をダウンロードする方法を投稿しています。
誰かがcoursera-dlを使用してwww.coursera.comのオープンクラスの資料をダウンロードし、Windows OSでは、同様のUnix OSにある「.netrc」のようなファイルを使用して、便宜上、-n
の代わりに-U <username> -P <password>
オプションを使用します。彼/彼女は次のようにそれを行うことができます:
Windows OSのホームパスを確認します:setx HOME %USERPROFILE%
( VonC's answer を参照)。 HOME
環境変数をC:\Users\"username"
として保存します。
ディレクトリC:\Users\"username"
に移動して、ファイル名_netrc
を作成します。注:接尾辞はありません。コンテンツは次のようになります。 :machine coursera-dl login <user> password <pass>
coursera-dl -n --path PATH <course name>
などのコマンドを使用して、クラスの資料をダウンロードします。 このページ の詳細なcoursera-dlオプションの詳細。