yum install python-setuptools
1、useradd git && echo "123" | passwd --stdin git
2、
mkdir /home/git/repositories
chown git:git /home/git/repositories
chmod 755 /home/git/repositories
3、get and install gitosis
cd /tmp
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
4、config gitosis
cp ~/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
5、manager gitosis
cd ~
git clone [email protected]:gitosis-admin.git
cd gitosis-admin
[[email protected] gitosis-admin]# tree
.
├── gitosis.conf
└── keydir
├── [email protected]
└── [email protected]
[email protected] gitosis-admin]# cat gitosis.conf
[gitosis]
[group gitosis-admin]
members = [email protected]
writable = gitosis-admin
[group mahjong_rw]
members = [email protected]
writable = mahjong
注:keydir目前下放用户公钥 gitosis.conf文件是设置组、组成员及对仓库的读写权限
git add *
git commit -am "add mahjong and [email protected] user"
git push origin master
创建仓库:
su - git
cd repositories/
git init --bare mahjong.git
git clone [email protected]:mahjong.git 克隆一个仓库
git push
git pull
git reset --hard HEAD^ (在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。)
git checkout -- file 可以丢弃工作区的修改,命令中的 -- 很重要,没有--,就变成了"切换到另一个分支"的命令
git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
git rm 用于删除一个文件.如果一个文件已经被提交到版本库,那么你永远不用担心被误删,但是要注意,你只能恢复文件到最新版本(git checkout -- file),你会丢失最近一次提交后你修改的内容。
git remote add origin [email protected]:path/repo_name.git 关联一个远程库,关联后使用命令git push -u origin master第一次推送master分支的所有内容。此后,每次本地提交后、只要有必要就可以使用命令git push origin master推送最新修改。