yum install python-setuptools



1、创建git用户

useradd git && echo "123" | passwd --stdin git

2、创建仓库目录及赋于权限

mkdir /home/git/repositories

chown git:git /home/git/repositories

chmod 755 /home/git/repositories


3、获取并安装gitosis 

cd /tmp

git clone https://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install


4、配置 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、管理 gitosis

cd ~

git clone git@192.168.31.202:gitosis-admin.git

cd gitosis-admin


[root@CentOS6 gitosis-admin]# tree

.

├── gitosis.conf

└── keydir

    ├── root@CentOS6.5-2.pub

    └── root@CentOS6.5-3.pub



root@CentOS6 gitosis-admin]# cat gitosis.conf 

[gitosis]


[group gitosis-admin]

members = root@CentOS6.5-2

writable = gitosis-admin


[group mahjong_rw]

members = root@CentOS6.5-3

writable = mahjong


注:keydir目前下放用户公钥 gitosis.conf文件是设置组、组成员及对仓库的读写权限



git add *

git commit -am "add mahjong and root@CentOS6.5-3.pub user"

git push origin master




创建仓库:

su - git

cd repositories/

git init --bare mahjong.git


git clone git@gitsrv:mahjong.git 克隆一个仓库

git remote -v  查看远程库信息


git push origin master (推送分支,就是把该分支上所有本地提交推送到远程库。推送时要指定本地分支,这样,Git就会把该分支推送到远程库对就的远程分支上。)

git push origin dev (如要推送其它分支,如dev,则需改成这样)


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 git@server:path/repo_name.git 关联一个远程库,关联后使用命令git push -u origin master第一次推送master分支的所有内容。此后,每次本地提交后、只要有必要就可以使用命令git push origin master推送最新修改。


GIT分支——————————————

git checkout -b <name>  -b参数表示创建+切换到<name>分支,相当于git branch <name> && git checkout <name>

git checkout -b dev origin/dev 创建远程origin的dev分支到本地,用此命令创建本地dev分支

git branch   查看分支 (git branch 命令会列出所有分支,当前分支前面会标一个*号)

git branch <name>  创建分支

git branch --set-upsteam dev origin/<branch> 指定本地dev分支与远程origin/<branch>分支的链接

git checkout <name> 切换分支

git merge <name> 合并某分区到当前分支

git branch -d <name> 删除分支

git branch -D <name> 强行删除(丢弃一个没有被合并过的分支)


当Git无法自动进行合并分支时,必须首先解决冲突。解决冲突后,再提交、合并完成

git log --graph --pretty=oneline --abbrev-commit 命令可以看到分支合并图


warning: LF will be replaced by CRLF in conf/xxxxxxx.xml.

-->git config --global core.autocrlf false