GitlabCEから、Sourcetreeへ「クローン」を作成するという一連の作業の覚え書きです。
GitlabCE 13.8.1
Sourcetree 3.4.2
です。
2タイプのクローン作成
クローン作成では、「sshでの接続」と「httpsでの接続」と2つの方法があります。
↑プロジェクトの右側に「クローン」というボタンがあります。ここを押すと、「SSHでクローン」「HTTPSでクローン」と2つのURLが表示されています。2つの方法での備忘録を・・・
sshでクローン
Sourcetree側 設定(ssh)
↑「ツール」「SSHキー 作成/インポート」を選びます。
↑「generate」を押します。
マウスを上の画面では、真ん中の何も書いていないところを、なぞります・・・(ランダムな数字を出すため)
↑公開鍵は、「ssh-rsa」で始まるところのエリアをコピーして、任意のファイルに保存をする「xxxx.pub」と「.pub」とします。
拡張子は、.pubでなくてもいいです。わかりやすくするためにです。
↑「Save private key」を押し、ファイルを作成します。
「xxxx.ppk」となる。先ほどの、.pubの公開鍵と同じファイル名称にすると、わかりやすいです。
(管理しやすいです)
↑「ツール」の「オプション」を選びます。
↑「SSHクライアントの設定」の欄で、「SSHキー」のところを、先ほど保存をした、「秘密鍵」を指定します。
GitlabCE側 設定(ssh)
sshの公開鍵を設定します。
↑右上「設定」を選びます。
↑左メニューの「SSH鍵」を選びます
↑保存した「公開鍵」の「中身」をペーストします。
「タイトル」はわかりやすい名称で設定をします。
「キーを追加」を押します
↑追加できたら、上記のような画面になります。
Sourcetree側 設定(ssh)
「git@」で始まるURLを指定
↑「Clone」を選び、「git@(FQDN):xxxx/xxxx.git」と「git」で始まるURLを入力します。
エラーその1
「ソースパス/ソースURLとして正しくありません」と出てくる事があります。
コマンド: git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks ls-remote git@(FQDN):xxx/xxx.git 出力: エラー: The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's ecdsa-sha2-nistp256 key fingerprint is: ecdsa-sha2-nistp256 256 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting. If you want to carry on connecting just once, without adding the key to the cache, enter "n". If you do not trust this host, press Return to abandon the connection. Store key in cache? (y/n) fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
↑上記のようなエラーが出た場合、「管理者権限」で「コマンドプロンプト」を開いて、
"C:\Users\(user)\AppData\Local\SourceTree\app-3.4.2\tools\putty\plink.exe" -ssh -C -i "D:\xxxx\xxxx.ppk" git@(FQDN)
↑と、打ちます。「plink.exe」を手動で起動させます。「FQDN」は、gitlabCEのドメイン名になります。
「SourceTree」は、Windows10上に複数のアカウントがある場合、ユーザ毎に、プログラムが配置されるようです。
"C:\Users\(user)\AppData\Local\SourceTree\app-3.4.2\tools\putty\plink.exe" -ssh -C -i "D:\xxxx\xxxx.ppk" git@(FQDN) The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's ecdsa-sha2-nistp256 key fingerprint is: ecdsa-sha2-nistp256 256 xx:xx:xx:xx:xx:xx If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting. If you want to carry on connecting just once, without adding the key to the cache, enter "n". If you do not trust this host, press Return to abandon the connection. Store key in cache? (y/n) y([y]を入れる) Using username "git". Passphrase for key "rsa-key-xxxxxx":(パスフレーズを入れる) Server refused to allocate pty Welcome to GitLab, @xxxx!
↑と「y」と、秘密鍵のパスフレーズを入れて、「Welcome to 」と出ればOKです。
↑「SourceTree」を再起動すると、上記のような小窓が出ることがあります。ここでも、秘密鍵のパスフレーズを入れます。
エラーその2
↑再び、「クローン」を作成してエラーになる場合があります。
↑「SSHエージェントを起動しますか?」「SSHキーによる認証に失敗しました。SSHキーエージェント(Pagent)を起動して再開しますか?」と、出てきます。
そして、「はい」を押すと
↑「準備ができたら再試行を押してください」と出てきます・・・
この場合・・・
↑ウィンドウの右下から「Pagent」を選びます。
↑「Add key」を選びます。
↑秘密鍵を選びます。
↑秘密鍵のパスフレーズを入れます。
↑一覧に表示されます。これで、準備完了です。
エラーその3
そのほか、Windows10の場合、「管理者(Administrator)権限」のユーザでないとエラーとなることがあります。もし、どうしてもエラーとなる場合「一般」ユーザかどうかチェックして「管理者(Administrator)権限」にしてみてください。
sshタイプでのクローン作成
↑ようやく、エラーが無くなり・・・、上記のように「これはGitリポジトリです」と出れば、大丈夫です。
↑クローンが作成されました。
HTTPSでクローン
Gitlab側、アクセストークンの取得(HTTPS)
↑右上のメニューから「設定」を選びます。
↑「アクセストークン」を選びます。
↑「名前」のところと、「API」のところにチェックを入れます。
↑「Create personal access token」を押します。
↑「パーソナルアクセストークン」が作成されました。赤枠部分は、この画面を逃すと、アクセスできませんので、必ず、この「アクセストークン」を書き留めておきます。
Sourcetree側、クローン作成(HTTPS)
↑「Clone(クローン)」を選びます。
↑「https」で始まるURLを入れます。
HTTPSでのエラー
↑「詳細」を押すと・・・
コマンド: git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks ls-remote https://(FQDN)/xxxx/xxxx.git/ 出力: エラー: remote: HTTP Basic: Access denied fatal: Authentication failed for 'https://(FQDN)/xxxx/xxxx.git/'
↑「Access denied」認証エラーのようです。
↑「コントロールパネル」の「資格情報マネージャー」を選びます。そして、「Windows資格情報」を選びます。
↑画面の下の方に「git」に関する情報があるかと思います。一度、「削除」をしてみます。
HTTPSタイプでクローン作成
↑今度は、右側のように小窓が出てきます。ここで、「ユーザ名」と「パスワード」を入れますが、前述で設定をした、「ユーザ名」と「アクセストークン」を入れます。ログインするパスワードではなく、「アクセストークン」を入れます。
↑「CredentialHelperSelector」このような画面が出てきたら、ある意味、正常です。パスワードを「毎回聞くようにする」「保存する」などの設定ができます。ここでは、このまま「Select」を押します。
↑認証がうまくいくと「これはGitリポジトリです」というようなメッセージが出てきて「クローン」を押すことができます。
上からの2番目、フォルダは、空のフォルダを指定しますして、「クローン」のボタンを押します。
↑クローンが作成できました。