SourceTree による Git リポジトリの管理 - 産技高専における Windows 環境の構築(5)

WindowsSetting Windows SourceTree Bitbucket 2019年 4月 26日

SourceTree の公開鍵設定

電気電子工学コースでは、Bitbucket のアカウントを作成し、Git を使ったペアプログラミング、チームプログラミングに活用している。 また、卒業研究などにおいてもプロジェクト遂行や論文執筆のために、Git は多く活躍している。 Git のクライアントとしては、Bitbucket を運用している Atlassian が配布している SourceTree が有名である。 本学では、Bitbucket とのやり取りに公開鍵暗号方式を用いるため、使い始めにあたって公開鍵の設定が必要である。 macOS は SourceTree をインストールするだけで、簡単に使い始められる。 一方、Windows 版はちょっと面倒な作業が必要となるので、ここで説明しておく。 以下、手順を示す。

  1. とりあえず Chocolatey のインストール にて、SourceTree はインストールされているものとする。
  2. 私の環境では、デスクトップやウインドウメニューに SourceTree が見つからなかった。 色々探したところ、C:\Program Files (x86)\Atlassian\Sourcetree の下に、SourceTree アイコンがあることを確認した。 SourceTree の場所
  3. 毎回ここを探し出すのは面倒なので、私はタスクバーにピン止めをしてしまった。 タスクバーへのピン留め
  4. アプリを起動すると「Registration」の画面になる。 学生の場合は、すでに Mac 室にてアカウントを作成しているはずなので、Bitbucket を押して Registration を開始する。 SourceTree の登録
  5. macOS の場合には、アプリ内にシームレスにブラウザを用意できるのだが、Windows の場合には別にブラウザを起動する必要がある。 図のような選択肢が出てくるので、Microsoft Edge を使ってみる。 SourceTree の登録
  6. ブラウザが開くので、必要であればログインする。ここではすでにログインしていたので、以下のような確認画面が表示された。 ここで、「アクセスを許可する」をクリックする。 アクセスの確認
  7. 「登録が完了しました」となるので、「次へ」をクリックする。 登録完了
  8. tool の選択画面が出るのだが、何故か私の環境では Git のチェックマークが設定できなかった。 仕方ないので、あとで別にインストールすることにする。 とりあえず「詳細オプション」を開き、「改行の自動処理を設定する(推奨)」と「Configure Global Ingore」を設定しておく。 前者は、Windows の改行が「CR(0x0d)+LF(0x0a)」であるのに対し、Linux や macOS などのその他の環境では「LF(0x0a)」であるためである。 Windows の多くのアプリでは、Windows 式の改行を必要とするものがあるので、Git の pull, pull の際にテキストを書き換えるようにする。 ツールのダウンロード
  9. 最後にユーザ名とメールアドレスを設定する画面になるので、登録しておく。 Preferences
  10. SSH キーの読み込み確認があるが、まだ作成していないので、「いいえ」をクリックする SSH key の読み込み
  11. Putty Key Generator が立ち上がるので、Generate をクリックする。 Putty Key Generator
  12. マウスの動きを乱数の初期値として、公開鍵と秘密鍵を作成するので、画面上でマウスを動かし続けておく。 Putty Key Mouse Over
  13. 作成された公開鍵が表示される。Key passphase は秘密鍵を解くためのパスフレーズである。 個人のマシンを他人に使われる心配がなければ、空のままにしておくこともできる。 気になる人はパスフレーズを設定してほしい。 また、今後のためにこの公開鍵と秘密鍵は内部に保存しておく。 Save public key で公開鍵を保存しておく。ファイル名は macOS で作ったのと同じように id_rsa.pub としておく。 場所は特に指定しなければ SourceTree のフォルダに作られるようである。 鍵の生成完了
  14. 次に Private key を保存する。もしパスフレーズを設定していない場合には次のような警告がでる。 その後、id_rsa.ppk という名前で保存する。 PrivateKeyの保存警告
  15. 次に公開鍵を Bitbucket のサイトに登録する。そのためにブラウザで Bitbucket にアクセスし、ログインする。その後、左下の自分のアイコンをクリックし、「Bitbucket Settings」をクリックする。
    Bitbucket Settings
  16. セキュリティのところにある「SSH鍵」をクリックする。
    Bitbucket SSH key
  17. これまでに登録された SSH 鍵が表示される(少なくとも Mac 室の鍵が登録されているはず)。先ほど作成した公開鍵を登録するため「鍵を追加」ボタンをクリックする。 SSH key の追加ボタン
  18. Label には Windows の名前を記載する。そして下の部分に公開鍵を記入する欄である。公開鍵は先ほどの Putty Key Generator からコピーする。 SSH ボタン
  19. コピーするのは、上の「Public key for pasting into OpenSSH authorized keys file」に書かれた「ssh-rsa」から始まるテキストである。 この部分をコピーしたら、先ほどの Bitbucket のサイトに貼り付けて「鍵を追加」とする。 鍵の生成完了
  20. 今後、SourceTree を起動すると、pageant という ssh のクライアントが自動的に起動する。 ただし、この場合秘密鍵を毎回読み込まなければならない。 非常に面倒なので、起動時に自動的に pageant を秘密鍵を読み込み済みで起動させるように設定する。 まず、Sourcetree/tools/putty にある pageant を表示する。 pageant の場所を表示
  21. 起動時にアプリを立ち上げるためには、スタートアップにショートカットを登録する必要がある。 Windows 10 の場合には、以下のように作業する。 まず、Windows ボタンで右ボタンを押して、「ファイル名を指定して実行」をクリックする。 ファイル名を指定して実行
  22. ウィンドウが出たら「shell:startup」とタイプする。 shell:startup
  23. 次に pageant の実行ファイルをコピーする。 pageant のコピー
  24. 次にスタートアップフオルダで右ボタンを押し、「ショートカットの貼り付け」を選択する。 ショートカットの貼り付け
  25. 起動時に秘密鍵を読み込むように設定したショートカットの設定を変更する。 ショートカットのプロパティ
  26. この状態だとリンク先に「"C:\Program Files (x86)\Atlassian\Sourcetree\tools\putty\pageant.exe"」となっているはずである。 ここに Sourcetree フォルダの下に保存した id_rsa.ppk という引数を追加する。 Sourcetree までは共通なので、リンク先の「"C:\Program Files (x86)\Atlassian\Sourcetree\」までをコピーする。 その後、「/pageant.exe"」の後ろにスペースを追加したのち、貼り付ける。 さらに「id_rsa.ppk"」と記入する。 最終的には以下のように「"C:\Program Files (x86)\Atlassian\Sourcetree\tools\putty\pageant.exe" "C:\Program Files (x86)\Atlassian\Sourcetree\id_rsa.ppk"」となる。 問題がなければOk を押して、OS を再起動してみる。 ppkの追加
  27. 再起動しログインしたあとで、タクスバーの常駐アプリを確認する。下の図のオレンジ色の丸で囲ったものが pageant である。 タスクバーの pageant
  28. 実際に Key が読み込まれているのかを確認するために、pageant の上で右ボタンを押し View Keys で確認してみる。 タスクバーの pageant
  29. Key list が表示されるので、キーが読み込まれていることを確認する。 タスクバーの pageant

既存のリポジトリをクローン

ここで例として Bitbucket にある 電気電子工学コースの実験実習レポートスタイルファイルのリポジトリ をクローンしてみる。

  1. リポジトリにアクセスし、右上に「クローンの作成」をクリックする。 クローンの作成
  2. 右上のプルダウンを「SSH」に設定し、「git clone git@bucket.org:hkob/eee.git」となることを確認する。 macOS や Linux であればこのコマンドを実行するが、今回は SourceTree でクローンを行うので、 下にある「Clone in Sourcetree」をクリックする。 Clone this repository
  3. アプリケーションの切り替えのダイアログが出るので、「はい」をクリックする。 アプリケーションの切り替え
  4. クローンの画面が出てきたが、リポジトリが正しくないと表示されてしまった。 そこで、ツールメニューのオプションを開いてみる。 正しくないリポジトリ
  5. オプションの「Git」を開いてみると Git サポートは無効になっている。ただし、インストール時に Git がインストールできなかったので、Chocolatey で git をインストールしておこう。 SourceTree 内部に Git をダウンロードすることもできるのだが、今後コマンドラインで git を使いたい時もあるので、システム側でインストールしておいた方が便利だと思う。 SourceTree のオプション
  6. git のインストールは PowerShell から cinst でできる。面倒なので --yes のオプションも付けておく。
    PS C:\Windows\system32> cinst git --yes
    
    Chocolatey v0.10.13
    Installing the following packages:
    git
    By installing you accept licenses for the packages.
    Progress: Downloading git.install 2.21.0... 100%
    Progress: Downloading git 2.21.0... 100%
    
    git.install v2.21.0 [Approved]
    git.install package files install completed. Performing other installation steps.
    Using Git LFS
    Installing 64-bit git.install...
    git.install has been installed.
    git.install installed to 'C:\Program Files\Git'
    git.install can be automatically uninstalled.
    Environment Vars (like PATH) have changed. Close/reopen your shell to
    see the changes (or in powershell/cmd.exe just type refreshenv ).
    The install of git.install was successful.
    Software installed to 'C:\Program Files\Git'
    
    git v2.21.0 [Approved]
    git package files install completed. Performing other installation steps.
    The install of git was successful.
    Software install location not explicitly set, could be in package or
    default install location if installer.
    
    Chocolatey installed 2/2 packages.
    See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
  7. 再度、オプションで「Git サポートを有効化」としてみると以下のようになった。 下の方にスクロールすると Git はシステムのものを利用している旨が表示されている。 SourceTree の Git オプション
  8. 再度、Clone in SourceTree をしてみると、次のような警告が出て、処理が中断される。 これは、初めて Bitbucket にアクセスしたので、Bitbucket のキーを受け入れていいかという確認である。 ここで「はい」としておけば、システムにキーが保存され、処理を継続できる。 Bitbucket のキー取得確認
  9. Bitbucket の Server key が取得されたことが表示される。 プロセスを再起動する必要があるとのことなので、再度 Clone in Sourcetree をやり直してみる。 もし、それでもダメな場合には、Pageant も再起動した方がよいかもしれない。 ただし、Pageant の再起動時にプライベートキーは読み込まれないので、手動で読み込む必要がある(プライベートキーはシステム起動時に読み込むように設定してあるので、面倒な人はシステムを再起動すればよい)。 Bitbucket のキー取得
  10. この結果、「これは Git リポジトリです」と出れば、Git の設定はちゃんとできていることになる。 最後に「クローン」ボタンを押せば、自分の PC にリポジトリがクローンできるはずである。 これは Git リポジトリです
  11. クローン中はこんなダイアログ画面が表示される。 クローン中
  12. クローンが終了すると、リポジトリが表示される。 クローン終了