- 更新日: 2013年8月1日
- Git
SSH で git リモートリポジトリにアクセスする設定
SSH で git リモートリポジトリに接続する場合、以下のコマンドで行います。
1 2 3 |
git clone ssh://user@server:60022/home/user/test.git |
ssh://ユーザー名@サーバー名:SSHのポート番号/リポジトリのパス
の書式となります。
git リモートリポジトリの作成
まずは、サーバー側に git リモートリポジトリを作成します。/home/user/test.git にリモートリポジトリを作成するものと仮定します。user でサーバーにログインして作業。
1 2 3 4 5 |
$ mkdir ~/test.git $ cd ~/test.git $ git --bare init --shared |
bare リポジトリを共用リポジトリ(shared)として作成。non-bare が作業用、bare が更新管理用のリポジトリとなり、non-bare リポジトリで編集したファイルを bare リポジトリに push する流れとなります。両者リポジトリについては以下が分かりやすいです。
ベアリポジトリとノンベアリポジトリ:理論編〜GitでWordpressのテーマを管理 | トリコロールな猫
クライアント側の ~/.ssh/config 設定
git リモートリポジトリのサーバーへの SSH 接続設定を、クライアント側の ~/.ssh/config に書いておきます。以前書いた以下の記事を参照。
SSH 接続クライアントの設定、 Macの ~/.ssh/config に SSH 接続の設定を書いておく | EasyRamble
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[mac ~]$ vi ~/.ssh/config Host centos HostName 192.168.1.2 Port 22 User username IdentityFile ~/.ssh/id_rsa Host centos2 HostName 192.168.1.3 Port 60022 User hogeuser IdentityFile ~/.ssh/hoge_rsa Host server HostName 192.168.1.4 Port 60022 User user IdentityFile ~/.ssh/fuga_rsa |
これを設定しておくと、以下のように ユーザー名やポート番号を省いて、git リモートリポジトリにアクセスできるので楽になります。
1 2 3 |
$ git clone ssh://server/home/user/test.git |
クライアント側でプロジェクト作成後、リモートリポジトリに push
1 2 3 4 5 6 7 8 9 10 |
$ mkdir ~/test $ cd ~/test $ git init $ echo "git test" > readme $ git add . $ git commit -m "first commit" $ git remote add origin ssh://server/home/user/test.git $ git push origin master |
git remote add origin ssh://server/home/user/test.git の行は、ssh://server/home/user/test.git に origin というラベル(名前)を付けています。
次に、clone してファイル変更後 push してみます。
1 2 3 4 5 6 7 8 9 10 |
$ mkdir ~/clone-test $ cd ~/clone-test $ git clone ssh://server/home/user/test.git $ cd test $ echo "hello" >> readme $ git add . $ git commit -m "change test" $ git push origin master |
元のプロジェクトで pull して確認。
1 2 3 4 5 6 7 8 9 |
$ cd ~/test $ cat readme git test $ git pull origin master $ cat readme git test hello |
以上です。最後に、確認テスト用であれば、テストのために作ったリポジトリのディレクトリを削除しておきます。
- – 参考リンク –
- Gitリモートリポジトリの作り方 – Qiita [キータ]
- Gitリモートリポジトリ構築 CapmNetwork
- gitにsshで接続(ポートと秘密鍵を指定) – まじめにゆいがどくそん
- Git の関連記事
- git cleanでUntracked files(未追跡ファイル)をまとめて削除
- .gitignoreを自動生成するgiboとgi(gitignore.io)コマンド
- git管理ファイルを.gitignoreに追加してgit管理から外す
- gitマージのコンフリクトで片方ブランチのファイル変更内容を採用
- git logコマンドで他ブランチにマージされていないコミットのみを確認
- Bitbucketで作成済みWikiページの一覧リストを確認
- GitHubのgh-pages (github.io)でWebページを公開
- git diffで長い行を折り返し表示
- git diffでブランチ間のファイル差分を確認するあれこれ
- Git の履歴からファイルを完全に削除する – git filter-branch
Leave Your Message!