gitサーバの構築(リモートリポジトリの作成)方法
サーバはLinux(ubuntu)、クライアントPCはWindowsを例に説明します

サーバ(ubuntu)での作業:
sudo apt-get install git ←gitのインストール
sudo apt-get update ←sshのインストール(サーバにインストール済みなら不要)
sudo apt-get install openssh-server ←sshのインストール(サーバにインストール済みなら不要)
sudo apt-get install  ssh ←sshのインストール(サーバにインストール済みなら不要)
mkdir /home/test/git_srv ←リモートリポジトリ用のディレクトリを作成
cd git_srv ←リモートリポジトリ用のディレクトリへ移動
git init --bare --shared  ←リモートリポジトリを作成。各オプションの解説は以下。

--bareはベアリポジトリの指定。作業ディレクトリを持たないことを意味する。つまりサーバではあくまでリモートリポジトリの管理情報を持つだけで、リポジトリのファイルへの変更はできないということ。リポジトリへの変更はクライアントPCから行います。
--sharedはリポジトリを他のユーザと共有するという意味。

クライアントPC(Windows)での作業 :
git for windowsをインストール
git bashを起動 ←以下はgit bashのターミナルでの操作。
mkdir git_test ←ローカルリポジトリ用のディレクトリを作成
cd git_test ←ローカルリポジトリへ移動
git init ←カレントディレクトリをローカルリポジトリとして初期化(カレントではなくディレクトリ指定も可能)
echo "gittest!!!!" > test.txt ←ローカルリポジトリに登録するテスト用ファイルを作成
git add . ←カレントディレクトリのファイルをインデックスへ登録
git commit ←インデックスへ登録したファイルをローカルリポジトリへコミット
git remote add gittest ssh://アカウント名:パスワード@サーバのIPアドレス/home/test/git_srv ←任意の名前「gittest」でリモートリポジトリにアクセスできるように設定(※1)
git push --set-upstream gittest master ←ローカルリポジトリの内容をリモートリポジトリへ反映(※2)

※1
gittestの箇所は任意の名前。git push時、この名前でアクセス情報の入力を省略できる。
アカウント、パスワードの箇所はサーバのssh通信時のアカウントとパスワードを設定。
サーバのIPアドレスはサーバ上でifconfig -aコマンドで確認できる。
ピンクの部分のパスは、サーバでgit initしたディレクトリを指定する。

※2
--set-upstreamは-uと省略して表記可能。
gittestの箇所はgit remote addで指定した任意の名前
masterはブランチ名。一般的にメインの安定ブランチを意味する。

クライアントPC(Windows)へ
サーバにあるリモートリポジトリのファイルを取得する方法:

git clone ssh://アカウント名:パスワード@サーバのIPアドレス/home/h/git_srv

git_srv/というフォルダができ、その下にtest.txtがあれば成功です。
なお、gitはリポジトリ単位で取得するので、細かいファイル単位で取得することはできません。

余談:
コマンドの説明書きが多くて読みにくかったらすみません。
表形式とかで書けたらいいのになぁ、ブログの書き方はほぼ無知なのです。。(そこには興味が無くて)
 
参考書籍:Linuxコマンドポケットリファレンス

この記事が参考になりましたら、他の方へもシェアしていただけると嬉しいです。

スポンサードリンク