サーバのGitにローカルPCからsshで接続

レンタルサーバにインストールしたGitにリポジトリを作成して、ローカルのPCからsshで接続してみる。

まず、初期設定としてユーザーを登録する。

git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"

次にリポジトリの作成。

$ mkdir git
$ cd git
$ mkdir sandbox.git
$ cd sandbox.git/
$ git init

何もないとよく分からないので、適当にファイルを作って登録する。

$ date > date.txt
$ git add date.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached ..." to unstage)
#
#       new file:   date.txt
#
$ git commit -m "Test"
[master (root-commit) f013bcb] Test
 1 file changed, 1 insertion(+)
 create mode 100644 date.txt
$ git status
# On branch master
nothing to commit (working directory clean)

ローカルPCにTortoiseGitをインストールする。(ランゲージパックも)
でも、その前にmsysgitが必要。
インストーラーを使ってインストールするだけなので手順は省略。

なお、TortoiseGitのサイトに「msysgit 1.8.3 と TortoiseGit 1.8.3 を一緒に使うな」と書いてあるので、とりあえずmsysgitは1.8.1.2を使用(なぜか1.8.2.xはない)。

クライアントPC上の適当なフォルダで右クリックし、「Gitクローン(複製)」を実行。
右クリックメニュー

ダイアログに接続情報を入力して、OKをクリック。
Gitクローン

SSHのパスワードを求められるので入力。
パスワード入力

サーバのリモートリポジトリからローカルリポジトリが作成された。
Gitクローン成功 同期されたファイル

以下の点でかなりハマった。
①クローンの作成時に「bash: git-upload-pack: command not found TortoiseGit」というエラーが発生して失敗
調べてみるとサーバ側でgit-upload-packにパスが通っていないことが原因とのこと。
しかし、普通にsshで接続した際には間違いなく~/local/bin/にパスが通っている。

試しにTortoiseGitではなくEclipseのEGitでやってみるが、同じエラーが発生。
途方に暮れていたところ、以下の情報に辿り着く。

EGit fails with “git-upload-pack: command not found”

要するに、.bash_profileにPATHの設定を書いても読んでくれず、.bashrcに書かないといけないらしい。
.bashrcにPATHの設定を書いたところ、解消した。

②クローンの作成時に「’/git/sandbox.git’ does not appear to be a git repository」というエラーが発生して失敗
①が解消したと思ったら、さらにエラーが。
google先生もよく分からない様子。
エラーメッセージをジーっと見つめていたら閃いた。
「/git/sandbox.git」を探しに行っているようだが、これは「~/git/sandbox.git」ではなく、本当に「/git/sandbox.git」を探しに行ってしまっているのではないかと。
試しにURLを「ホスト名/home/xxxxx/git/sandbox.git」に変えてみたら解消した。

レンタルサーバにGitを導入

レンタルサーバにGitを導入する。

<参考サイト>
さくらのレンタルサーバ(スタンダード)にGitをインストール
さくらレンタルサーバーにGitをインストールする改良版

$ cd ~/tmp/
$ wget --no-check-certificate https://www.kernel.org/pub/software/scm/git/git-1.8.3.2.tar.gz
$ tar zxf git-1.8.3.2.tar.gz
$ cd git-1.8.3.2
$ ./configure -prefix=$HOME/local
$ gmake
(省略)
gmake: *** [git-credential-store] Error 1

エラーが出て失敗。
「gmake: *** [git-credential-store] Error 1」でググったところ、以下のサイトにバージョンが新しすぎてエラーになる的な情報を発見。1.7.x系に落として再チャレンジ。

<参考サイト>
Git導入へ(1)~さくらインターネットに。

$ wget --no-check-certificate https://git-core.googlecode.com/files/git-1.7.12.4.tar.gz
$ tar zxf git-1.7.12.4.tar.gz
$ cd git-1.7.12.4
$ ./configure -prefix=$HOME/local
$ gmake
$ gmake install
$ git --version
git version 1.7.12.4

無事成功。
ちなみに、Redmineのインストール時に$HOME/local/binにPATHを通してある。
もしPATHが通っていない場合は$HOME/.bash_profileに設定しておく。