Windows環境でGitを利用する方法を色々試してみたのでまとめ。
Team Foundation Serviceの今後やTeam Foundation Server 2013 などでもサポートが進みそう(そして社内でも熱い)Gitだけに早いうちにマスター(遅いか)しておきたいところ。
今回試したのはWindows環境でCygwinとGitExtentionsを用いてGitBucketのリポジトリからPullしてくるところまで。
Cygwin、GitExtentionsともにSSH接続で公開鍵暗号方式を利用して接続流れになりますが、それぞれ鍵の作り方を変えてみたので紹介。
Windows環境にLinuxライクな環境を作成してコマンドラインで操作するためのソフトウェア。
Gitはコマンドラインでの操作説明が多いため、こちらの環境の方が情報は豊富そうです。
ただ、WindowsでVisual Studioメインで開発してGitはコマンドラインというのはちょっと綺麗じゃない気がします。
Cygwinで鍵を作成する場合は以下のコマンドを打ちます。
ssh-keygen -t rsa
途中パスワードを聞かれるので指定して作成します。すると{ホームディレクトリ}/.sshフォルダ以下に、id_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されます。
公開鍵をサーバー側に公開して、秘密鍵は手元に置いておきます。
GitBucketの場合、アカウント設定のSSH Keysメニューから追加を行います。id_rsa(公開鍵)の中身をテキストエディタでコピーしたものを設定します。
後は、初期GitBucketリポジトリ作成時に表示される「Make changes and push」に従いリポジトリに接続してみればOK。
注意点
私の環境ではリポジトリに接続しようとした際に以下のエラーになった。
It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /Users/ruedap/.ssh/id_rsa Permission denied (publickey)
ファイルの権限を600に変更すれば良いようなのだが、私の環境ではうまく行かず、以下の記事を参考に対応した。
windows8でcygwinのchmod 600がうまくいかない(最底辺プログラマ雑記)
Windows8の問題?
GitExtentionsはGUIでGitを扱えるツールで、Visual Studioにもメニューが追加される。
個人的にはVisual Studioと連携できるこちらがありがたい。
(GitExtentionsを入れるとVisual Studioにメニューが追加される、画像下部の「Commit」がある列)
こちらは鍵の作成にPuttyを利用する方法を紹介する。
結局作成するのは公開鍵と秘密鍵なので、Cygwinでの作成と好きな方法を利用すればよいと思う。
GitExtentionsはフル版をインストールすると一緒にPuttyもインストールするので、まだPuttyを使われていない場合はそちらが便利。
Puttyのインストールディレクトリ(私の場合、C:\Program Files (x86)\GitExtensions\PuTTY)にあるputtygen.exeを起動します。
上画像のGenerateボタンを押して、ボタン上部のエリアでマウスを動かすとマウスの動きを乱数代わりにしてkeyを生成します。
keyが生成されたらKey passphraseとComfirm passphrase(確認)にパスワードを入力して公開鍵と秘密鍵を作成します。公開鍵は拡張子をpub、秘密鍵はppkにするのが慣例です。特に秘密鍵の拡張子をppkにしておくと次のGitExtentionsでの読み込み時に便利です。
鍵ができたらGitExtentionsを利用してpullしてみます。
上写真のようにフォルダー上で右クリックメニューを表示しPullを選択します。
「リモートの管理」ボタンでリポジトリの設定を行います。
設定画面の下部の参照ボタンから秘密鍵を読み込みますが、拡張子がppkのものしか選べないので注意(まぁ、拡張子を変えればいいんですが)。
後はGitBucketなり、接続するリポジトリに合わせた設定を行います。
最後にGitBucketについて、
GitリポジトリのWebサービスとしてはGitHubが有名ですが、GitHubが非公開リポジトリが有料なのとはことなりこちらは5名までの接続であれば無料で利用できます。
というわけで、メインはGitHubでサブとしてこちらも利用し始めてみたのですが、こちらも良さそうです。
というわけで、鍵の部分をメインにWindows環境からのGitリポジトリへの接続について紹介しました。
Please give us your valuable comment