gitoliteでリポジトリの追加してWEBサーバーに反映

gitoliteでリポジトリの追加してWEBサーバーに反映させたい

まず、リポジトリの追加

gitolite-adminリポジトリをgit cloneして
vim gitolite-admin/conf/gitolite.conf

repo (追加するリポジトリ)
RW+ = @all

を追記
@allだと全ユーザー、読み書きが可能になります

git commit -am ‘add new reposiry’
git push
でgitoliteサーバーにリポジトリが作成されます

WEBサーバーにあがってるソースを公開フォルダからごっそりローカルに落とします
scp -r user@server:/var/www/(git管理したいフォルダ) (好きなフォルダ名: src)

cd src
git init
git commit -am ‘prepare’

リモートリポジトリを登録します
git remote add origin ssh://user@gitserver/(追加するリポジトリ).git
git push origin master
でサーバーのリポジトリにソースが上がります

gitoliteのフォルダは、WEBの公開フォルダではないので、
push されたらWEBの公開フォルダへ反映するようフックスクリプトを用意します。

gitoliteサーバーへログインして
su – (gitlite用ユーザー)
cd ~/repositories/(追加したリポジトリ).git/hooks

vim post-receive (なければつくります)

#!/bin/sh
GIT_WORK_TREE=(WEBの公開フォルダ) git checkout -f

を保存
実行権限をつけます
chmod a+x post-receive

ローカルにある今回つくったリポジトリで何か修正して
git commit -am ‘commit’
git push origin master
でWEBの公開フォルダにも反映されれば成功です

が、いくつかハマりました。

1.WEBの公開フォルダ上の権限が足りない
とりあえず
chmod o+w .
chmod o+w *
chmod o+x .
chmod o+x *
とかして応急処置

2. git pushするとWEBの公開フォルダ上の権限が勝手に400とか変わる
gitoliteサーバーへログイン、
su – (gitlite用ユーザー)
vim .gitlite.rc

UMASK => 0077,

UMASK => 0022,
に変更

とりあえずできました

gitoliteでgitolite-adminへのpushに失敗する

gitoliteでgit cloneしておいたgitolite-adminリポジトリへ
ユーザーを追加しようとすると

cd path/to/gitolite-admin/keydir/
git add newuserkey
git commit
git push

エラーが発生
Fix for "W Access for Gitolite-admin DENIED to gitoliteuser"

gitoliteサーバーへ入って
gitolite.confを確認すると違うユーザーになってる..
このユーザーはキーの名前と同じようです(詳しくはわからないけど)

repo gitolite-admin
RW+ = (ここにユーザー名の記載)

gitolite.confとgitolite.conf-compiled.pmの間違えてるユーザーを
変更

もとのPCでも
gitolite.confを修正しておく
(しておかないとまたもとに戻る)

git push
でうまくいきました

Windows7でSourceTreeを使ってみる

GITクライアントにSourceTreeを使ってみる

<環境>
Windows7
Gitサーバーは用意済

sourcetree1

Full NameとEmail addressを入力、I agree ~にチェックを入れてNext

sourcetree2

おすすめのPuTTYを選択、Next

soucetree3

Finish
でインストール終わり

Gitサーバーに使ってる秘密鍵を取り込みます
OpenSSHで作った鍵だったので、PuTTYフォーマットに変換します

Tools > Create or Import SSH Keys

sourcetree4

sourcetree5

Loadで秘密鍵を取りこみ

sourcetree6

O.K.

sourcetree7

Save private key でPuTTYフォーマットの秘密鍵が保存出来ます

秘密鍵をPuTTYに設定します

タスクトレイ(普通は右下)のアイコンを右クリック

sourcetree8

Add Keyで用意した秘密鍵を取り込み

ためしに、git cloneしてみます

sourcetree9

Repository Typeのとこに This is a Git repository なんて出れば成功です

[github]エラー:The remote end hung up unexpectedly

[環境] windows7 + cygwin

githubにpushしようとしたらエラー発生。

git push -u origin master
Counting objects: 48, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (41/41), done.
error: RPC failed; result=55, HTTP code = 0 KiB/s
fatal: The remote end hung up unexpectedly
Writing objects: 100% (48/48), 7.53 MiB | 453 KiB/s, done.
Total 48 (delta 5), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly

途中まで行くのに。
httpsで通らないから、横着してhttpでやってたから?

git config –global http.sslVerify false

これで

git remote rm origin
git remote add https://(リポジトリ)
git push -u origin master

あがりました
そろそろ理解しないと。。