git リモートリポジトリを立てるの巻 ~ mac to mac ~

今使ってるmacの様子がおかしい...
重い...(長年の想いがたくさん詰まっているので)


Androidエミュレータを起動しようもんなら風呂入って一服出来るぐらい時間がかかる


んで友達のmacにvncで繋いでごそごそしている。
# vncがデフォルトで入っているmacはやはり最高だ。
# Adminパスワードを教えてmacを貸してくれる友達も最高だ!!


ここで問題。自分のmacと友達macの変更たちをどうやって管理していこうかと。


答えは簡単。gitがあるじゃないかと。


前置きが長くなりましたが、mac to macでsshを使ったgitリモートリポジトリ環境の構築

  • 以下自分mac:macA、友達mac:macBとします。
  • ssh接続は macB -> macA のみ

とりあえずssh接続

  1. macAの「システム環境設定」>「共有」>「リモートログイン」にチェック
    • sshもデフォルトで用意してくれてるmac
  2. macBのターミナルからssh
macB > ssh <macA.user>@<macA.IPAddress>

gitリモートリポジトリ作成

macA > mkdir <git-repo>
macA > cd <git-repo>
macA > git --bare init
  • の名前の最後は「.git」にすると男前
  • 「.git」を付けてもcloneで反映されません。

macA側のprojectをpush

は既にgitで管理しています。

macA > cd <macA.project>
macA > git add .
macA > git commit -a m "とりあえずコミットしとく"
macA > git remote add origin ssh://<macA.user>@<git-repo>
macA > git push origin master

macB側でclone

もgit管理していましたが一旦造り直します。

macA > cd <macB.project>
macA > git clone ssh://<macA.user>@<git-repo>
...

ここで問題発生。


↓のエラーが出る。

bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly


むむむ。


ssh上では「git-upload-pack」が見つからないと。


こちらを参考にさせて頂き解決。
↑の中で3点の解決法が紹介されていますが、3番目のシンボリックリンク法で対応することにした。

sshで通ってるパスの確認
macB > ssh <macA.user>@<macA.IPAddress> echo \$PATH
  • $PATHの前に「\」がないとダメ
git-upload-packの配置パス確認
macA > which git-upload-pack
シンボリックリンク作成
macA > ln -s <git-upload-packの配置パス> <sshで通ってるパス>/git-upload-pack

改め。macB側でclone

macB > cd <macB.project>
macB > git clone ssh://<macA.user>@<git-repo>


出来た。


# ついでにmacBでpushするとまた「git-xxxがない」って怒られるのでそれもmacA側でシンボリックリンクを造る


以上。