サーバの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」に変えてみたら解消した。

コメント

コメントする