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 [email protected]:gitosis-admin.git
cd gitosis-admin
[root@CentOS6 gitosis-admin]# tree
.
├── gitosis.conf
└── keydir
root@CentOS6 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 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