git serverの構築 (remote repository)
-
(参考) gitサーバのセットアップ
-
公式の通り,remote repositoryは /opt に置く.
- 大きくなったら外付けに逃がす./home/gitは使わない.
-
gitユーザでsshが鍵認証されない (参考)
-
/home/xxx と /home/xxx/.ssh のパーミッションを755にする
-
.ssh/authorized_keysのパーミッションを700にする
-
Gitのリポジトリの説明(Description)を記述する
http://d.hatena.ne.jp/perlcodesample/20120505/1336451808 -
Remote Repositoryは --bare で初期化する.(workを作成)
$git init --bare test.git
これで ssh://git@xxx/opt/git/xxxx.git でアクセスできるようになる.
- git:// を有効にするためには git daemon
- http:// を有効にするためには smart HTTP
gitwebをインストール
(参考)【Ubuntu 16.04 LTS Server】gitwebを使う
- /etc/gitweb.conf を修正
$projectroot="/opt/git"
- apacheにgitへのアクセス権付与
sudo gpasswd -a www-data git
- apachにgitwebの設定を追加
$ vi /etc/apache2/conf-available/gitweb.conf
$ a2enconf gitweb
gitwebは、/usr/lib/cgi-bin/gitweb のCGIを実行している
(実体は、/usr/lib/share/gitweb/ にある)
windows側でgitをセットアップ
-
msysgitをinstall
-
TortoiseGitをinstall
-
TortoiseGit の ssh clientをmsysgitのものに変更する(putty不要)
- Settings -> Network -> SSH client = c:\devel\git\usr\bin\ssh.exe
-
msysgitのgit bashを立ち上げて鍵を作成
$ ssh-keygen.exe -t rsa -C "user@hostname"
-
~/.ssh/id_rsa.pub の内容を,git server の /home/git/.ssh/authorized_keys に追加する
-
git clone ssh://git@hostname/opt/git/xxxxx.git
git の branch model の確認
(参考) ぼくが実際に運用していたGitブランチモデルについて
https://havelog.ayumusato.com/develop/git/e513-git_branch_model.html
- master : 完全に動作するとき入れる
- develop : とりあえず適当に入れる
- local側にdevelop branchを作成する
- develop branchにswitchして,ローカルで作業
- push 時に remote のbranchにdevelopを指定してpushすると,remote側にbranchがそのままできる.
※うまく作れたらcloneしなおしたほうが良いかも
web serverへのdeployの自動化
(参考) gitでシンプルなデプロイ環境を作る
server側でclone
$ cd /var/www
$ git clone /opt/git/xxxx.git
$ git pull origin develop
hook/post-receiveを作成. chown git:git, chmod a+x
# !/bin/sh
cd /var/www/xxxx
git --git-dir=.git pull origin develop