レンタルサーバにインストールした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クローン(複製)」を実行。
サーバのリモートリポジトリからローカルリポジトリが作成された。
以下の点でかなりハマった。
①クローンの作成時に「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」に変えてみたら解消した。