やりたいこと
社内ローカル環境で、Mac端末にGitサーバーを立て、Windows端末やMac端末上のSourceTreeから利用したい。
経緯
いずれはWeb上のホスティングサービスを利用したいと思っていますが、学習も兼ねて、まずは社内で試すことに。
他の方の記事をいくつか参考にしましたが、微妙にうまくいかない点があった為、こちらに残します。
環境
・Gitサーバー:Mac mini(MacOSX)
・Gitクライアント:Windows10、MacCSX
手順
1.MacにGitをインストールする
・会社から端末を手配してもらった時点でxcodeがインストールされていたので、gitも入っていた、はず。
・MacはGitクライアントとしても使うので、SourceTree(3.0.1)をインストール。
2.SSH接続の為の鍵を作成する(Mac)
(1)ターミナルで以下を実行。
ssh-keygen -t rsa
("rsa"・・・ファイル名。任意でOKですが、この名前がよく使われている為、倣います。)
⇒実行後、/User/(ユーザー)/.ssh/ 内に、秘密鍵と公開鍵(のファイル)が作成される。
(".ssh"は隠しディレクトリ。Finderでパスを明示して移動すると見る事が出来ます。)
3.パーミッションを設定する(Mac)
(1)ターミナルで以下を実行。
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
rm id_rsa.pub
(各コマンドの意味)
・.sshディレクトリに移動("~/"はユーザーディレクトリ)
・公開鍵(id_rsa.pub)をauthorized_keysに結合
・公開鍵(authorized_keys)のパーミッションを600(所有者のみ読み書き可)に設定
・.sshディレクトリのパーミッションを700(所有者のみ読み書き実行可)に設定
・id_rsa.pubを削除
4.Gitクライアントに秘密鍵を渡す
(1)Windowsの場合
Macで作成した秘密鍵(id_rsa)を、USBメモリなどを使って「C:\Users(username).ssh\」配下に置く。
(2)Macの場合
今回はGitサーバーとGitクライアントを兼ねている為、ファイルの移動はない。
5.Gitクライアントから使えるか確認する
(1)Macでリポジトリを作成
ユーザーディレクトリ直下に「repos」ディレクトリを作成し、その配下にリポジトリのディレクトリを作成する場合
・ターミナルで以下を実行する。
cd ~/
mkdir ~/repos/
cd repos
mkdir sample.git
・作業ディレクトリなしで、リポジトリを作成する
git init --bare
(2)Macで他端末からのSSH接続を許可
・Appleメニュー > システム環境設定 > 「共有」を開く。
・「リモートログイン」の項目をチェックする。
(3)WindowsのSourceTreeからCloneする
・以下のように、リモートリポジトリを指定してClone。
(Macのユーザー名)@(MacのIPアドレスまたはホスト名):repos/(リポジトリのディレクトリ名)
(例)
suzuki@192.168.1.1:repos/sample.git
ここまで出来たら、SourceTreeでプッシュ、プルや「リモートのステータスを更新」も出来る。
今までWindowsローカルでのみ利用していたリポジトリもプッシュ出来た。
今後
社内の有志とあれこれ使い、ルールを定めて、社内のSVNをGitに移行したいと思っています。
参考
Windows10パソコン上にGitサーバを立ててみた
ls -l
と chmod
による謎の数字とアルファベットの意味まとめ