gitに移行しようと思うので覚書.
ついでにサーバーにリモートリポジトリ置いてみようと思うのでそんな感じのことも.
サーバー側
#サーバーでリモートリポジトリをまとめとくディレクトリを作成
/ $ mkdir repos
#今回のプロジェクトで使うリポジトリを置くディレクトリを作成
/ $ mkdir repos/new_prj.git
/ $ cd /repos/new_prj.git
#ベアリポジトリなのでオプションで--bareを指定.共有するので--shared
new_prj.git $ git init --bare --shared
クライアント側
#リモートリポジトリから
myrepos $ git clone ssh://usr@host/repos/new_prj.git new_prj
#適当にファイルつくってadd, commitまで.
new_prj $ echo "test" > test.txt
new_prj $ git add test.txt
new_prj $ git commit -m "add new file test.txt"
#変更をpushする
#usrがnew_prj.gitディレクトリ以下のファイルに対して書き込み権限もってないとダメなので注意.
#ある程度の人数でやるならグループ作って権限与えてやるのがよいのかな.
#権限変えたりグループ設定変えたりしていろいろやってるけど正直ここがもうちょっと.
#初回はgit push origin masterしないとbranch明示しろカスっつって怒られます.大人しくやっときましょう.
#$git push dir/repo branch
new_prj $ git push
#指定するなら
new_prj $ git push ssh://usr@host/repos/new_prj.git
#など.
クライアントのPushがうまく反映されてるのか確認してみよう.
#クライアントで
myrepos $ git clone ssh://usr@host/repos/new_prj.git cp_prj
myrepos $ ls cp_prj -l
#したり,
myrepos $ cat ~/myrepos/cp_prj/test.txt
#してみたりとか.
myrepos $ git log
#とかでもよい.
#既存のプロジェクトをぶっこむとき
.
$git remote add origin <リモートリポジトリ>
#初回のみ.-u(upstream)オプションで,push先のブランチをトラックするように設定.デフォルトのPush,Pull先がここになる.
$git push -u origin master
#以降これでよい.
$git push
#とあるグループみんなで共用したいとき.
$mkdir prj.git
$cd prj.git
$git init --bare
$chgrp -R groupName dir
git reset したら失敗したのでresetを取り消したいとき.
git reflogで一ヶ月分くらいのHEADの動きを辿れるのでそれを使ってresetをresetしてやる.具体的には,
#ログ見て,
$git log --oneline
#戻したいとこ決めてreset.でも失敗.HEAD^にしたかったのに,HEAD^^にしてしまった.
$git reset --hard HEAD^^
#reflogで確認
$git reset --reflog
#reset剃る前はHEAD@{1}だったので,そこにとりあえず戻す.
$git reset reset --hard HEAD@{1
#これでreset前に戻ったので確認
.
$git log --oneline
#改めてreset
.
$git reset --hard HEAD^}
最終更新:2011年12月17日 21:21