Help us understand the problem. What is going on with this article?

社内Mac端末をGitサーバーとしてセットアップする

やりたいこと

社内ローカル環境で、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 -lchmod による謎の数字とアルファベットの意味まとめ

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away