GitHub環境構築

GitHubの環境を構築したので、備忘録として残しておきます。

Windows 7上で構築しています。

目次

 


GitHubの環境構築

Windows上にgitをインストール

 

git for Windowsの設定

  • gitのバージョンを確認する

git for WindowsのGit Bashを開き、以下のコマンドでgitのバージョンを確認する。ここでバージョンがでれば、きちんとインストールできている。

git --version

 

  • ユーザー名とメールアドレスを設定する

以下のコマンドでユーザ名とメールアドレスを設定する。
※ユーザ名はダブルコーテーションで囲うこと。

git config --global user.name <ユーザー名>

git config --global user.email <メールアドレス>

 

  • SSH接続用鍵の生成と設定

GitHubに接続するためのSSH鍵を生成する。以下のコマンドで鍵を生成する。
-bオプションで鍵の長さを指定でき、GitHubの推奨している4096ビットを指定しているらしいので4096を指定。
※コメントはダブルコーテーションで囲うこと。

ssh-keygen -t rsa -b 4096 -C <コメント>

実行すれば、 鍵の出力場所と鍵のファイル名とパスフレーズを求められるので、任意の値を指定する。
指定した出力場所に{鍵のファイル名}と{鍵のファイル名}.pubができあがるはず。拡張子がついていないほうが秘密鍵、.pub拡張子がついている方が公開鍵。

 

生成した秘密鍵のパーミッションを600に変更。lsで確認したときに「-rw-------」になっていれば正しい。

chmod 600 ~/.ssh/<秘密鍵の名称>

ls -la ~/.ssh/<秘密鍵の名称>

 

先ほど生成した秘密鍵を~/.ssh/に移動させる。.sshファイルがない場合は新規作成する。また、Windowsの場合は、~はユーザのディレクトリを示しているようだ。
さらに、~/.ssh/configというファイルを作成し、以下の値を入力する。

Host github

  HostName github.com

  User git

  IdentityFile ~/.ssh/<秘密鍵のファイル名>

 

 

GitHubの設定

上記URLにアクセスし、Username、Email,Passwordを入力し、「Sign up for GitHub」をクリック。
※ここでgit for Windowsで登録したユーザ名とEmailが異なっていると、GitHub上のユーザアカウントとうまくリンクが取れず、コミットしてもユーザとして履歴が残らなかったりするので、注意。

記載内容に従っていけばできる登録できると思うので内容は割愛。ただし、
有償版か無料版か聞かれるが、個人で使うなら無料版でOKかと思います。

 

  • GitHubでリポジトリを作成する

「start project」をクリックして、リポジトリを作成する。
「Initialize this repository with a README」にチェック。ライセンスはお好きなライセンスで開示しないと、デフォでは通常の著作権が適用されてしまうので第三者の共有を求めているなら、OSSは明示したほうがいいかも。

 

  • GitHubに公開鍵を登録する
    • GitHubのページの右上端にあるアイコンをクリックして、アカウントメニューの中にある「Settings」を開く。
    • 左側のメニューから「SSH and GPG keys」タブを選択し、「New SSH key 」をクリック。
    • 「Title」と「Key」に設定を入れる。「Title」は任意の値でOK。「Key」には 「SSH接続用鍵の生成と設定」 の章で生成された公開鍵をコピーする。

 

  • GitHubへSSH接続できることを確認する

git for WindowsのGit Bashを開き、 以下のコマンドを入力する。

eval `ssh-agent`

ssh-add /C/Users/<ユーザ名>/.ssh/<秘密鍵の名称>

〉〉 SSHパスフレーズ入力

ssh -T git@github.com

「Hi <ユーザ名>! You've successfully authenticated, but GitHub does not provide shell access.」と表示されればOK。

 

 

GitHubのリポジトリをローカルリポジトリにクーロンする

  • GitHubのリポジトリ名をコピーする
    • GitHubにログインして、クローンするリポジトリにアクセスする。
    • 「Clone or download」をクリックし、「Use SSH」を選択する。
    • 「git@github.com:<ユーザ名>/<リポジトリ名>.git」をコピーする。

 

  • ローカルリポジトリにクーロンする

git for WindowsのGit Bashを開き、以下のコマンドでローカルリポジトリ用のディレクトリを作成する。

cd <ローカルリポジトリを作成したいディレクトリ>

mkdir <ローカルリポジトリ名>

cd <ローカルリポジトリ名>

git clone <先ほどGitHubからコピーした文字列>

クーロンが成功すれば、GitHubのリモートディレクトリ上にあるファイルがローカルリポジトリにコピーされているはずです。

 

 

TortoiseGitを導入する

git for windowsだけでは、コマンドベースでの管理となるためGUIでgitを実行できるTortoiseGitを導入しました。本章はその導入方法の備忘録です。

TortoiseGitにはSSH形式の鍵とPPK形式の鍵で認証できる。しかし、 SSH形式だと、毎回パスフレーズを入力する必要があるためPPK形式を使ったほうがよい。
そのため、以下ではgit for windowsでの接続するときに作成した秘密鍵をPPK形式に変換することで対応する。これにより、GitHubに登録する公開鍵が1つで済む。

 

TortoiseGitの設定

  • TortoiseGitのインストーラをダウンロード

 

  • TortoiseGitのインストール
    • 先ほどダウンロードした本体のインストーラを実行
      • インストーラの手順に従えばインストールできるので手順は割愛。
    • 先ほどダウンロードした言語パックをインストール
      • こちらも手順に従えば、インストールできるので手順は割愛。

 

  • SSH形式の秘密鍵からPPK形式の秘密鍵を作成する
    • TortoiseGitでインストールされたパッケージ内にある「PuTTY gen」を実行する
    • 「Conversions」->「Import key」をクリック
    • git for windowsでの接続時に作成したSSH形式の秘密鍵を選択
    • パスフレーズを聞かれるので、SSH形式の秘密鍵用のパスフレーズを入力する
    • 「Save private key」をクリック

 

GitHubのリポジトリをローカルリポジトリにクーロンする(TortoiseGit版)

  • GitHubのリポジトリ名をコピーする
    • GitHubにログインして、クローンするリポジトリにアクセスする。
    • 「Clone or download」をクリックし、「Use SSH」を選択する。
    • 「git@github.com:<ユーザ名>/<リポジトリ名>.git」をコピーする。

 

  • ローカルリポジトリにクーロンする
    • ローカルリポジトリを作成したいフォルダ上で右クリック->Gitクーロン実行
    • URLにGitLabリポジトリの接続文字列をコピーして、Putty認証キーのロードで先ほど作成したPPK形式の秘密鍵を選択
    • 秘密鍵のパスフレーズを入力する
      • パスフレーズはSSH形式でもPPK形式でも共通なはず

クーロンが成功すれば、GitHubのリモートディレクトリ上にあるファイルがローカルリポジトリにコピーされているはずです。

 

TortoiseGitでGitHubとのやり取りするときの注意

TortoiseGitでpushやpullなどのリモートディレクトリに対して操作するときには以下を実行しないとうまくできなかった。

  • Pageantに秘密鍵を指定
    • TortoiseGitのパッケージ内にあるPageantというツールを起動する
    • バックグラウンドでPageantが起動するので、右下のアイコンからPageantを見つけ、それを右クリック->「Add key」実行
    • PPK形式の秘密鍵とパスフレーズを入力

 

  • TortoiseGitのプッシュ/プル画面でPutty認証キーを自動ロードを選択する
    • Pageantに鍵情報を登録している状態で実行することでリモートディレクトリに対しての操作ができるようになった。

 

 

 

参考

 

 

以上!

Share

  • Add this entry to Hatena Bookmark

Follow Me