安装步骤
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| yum install git cd /usr/local/src git clone git://github.com/res0nat0r/gitosis.git cd gitosis yum install python-setuptools python setup.py install
useradd \ -r \ -s /bin/sh \ -c 'git version control' \ -d /home/git \ git mkdir -p /home/git chown git:git /home/git
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| useradd -r -s /sbin/nologin -c 'git version control' -d /home/git -g git git useradd git su git cd /usr/local/src git clone https://github.com/sitaramc/gitolite mkdir -p $HOME/bin gitolite/install -to $HOME/bin
gitolite setup -pk YourName.pub ssh-keygen.exe -q
cd /home/git/repositories git init --bare --shared myproject.git
repo mypro RW = @all
git clone git@host:gitolite-admin
ssh-keygen.exe -q cd ~/.ssh cp id_rsa.pub gitolite-admin/keydir/<username>.pub
repo myproject RW = tom jack 上面的配置表示 tom 和 jack 用户对仓库 myproject 具有读写权限
|
安装 gitweb
1 2 3 4 5 6
| yum install epel-release yum install lighttpd gitweb
mvn archetype:generate -DarchetypeCatalog=local -DgroupId=com.example -DartifactId=example - Dversion=1.0 -DarchetypeGroupId=com.nebula -DarchetypeArtifactId=nebula-framework-archetype -Di nteractivMode=false
|
git 子模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| git submodule add https://github.com/chaconinc/DbConnector git commit -am 'added DbConnector module'
git clone --recursive git@host:project
git submodule init git submodule update
git submodule update --remote
git fetch git merge origin/master
git submodule update --remote --merge
[submodule "mypro/src/main/webapp/pages"] path = mypro/src/main/webapp/pages url = git@host:mypro-webpages branch = dev
git submodule update --checkout --remote htcem-web/src/main/webapp/pages
|
多模块项目协作模式。模块添加之后,切换到指定的工作分支。然后,使用上面检出指定的子模块分支的方法,检出分支。注意这个检出操作只是在当前的工作分支上。
最终功能开发完成之后,可以在,主项目的 master 分支上,进行 子模块 的 update.
添加子仓库忽略
一旦子仓库开始进行更新了, 此时使用 git status
的时候就会表现出 子仓库的路径会发生一个 modify,需要被提交,
而一般的我们使用子仓库的时候这个 path 的修改不需要提交。所以使用下面的方法,这个子仓库路径的变化添加到忽略中。
在子仓库的配置中添加下面的配置。ignore = all
1 2 3 4
| [submodule "htcem-web/src/main/webapp/pages"] path = htcem-web/src/main/webapp/pages url = git@192.168.0.10:htcem-webpages ignore = all
|
git 导出代码
1 2
| git archive -o latest.zip HEAD
|
gitolite 使用异常问题
在时候在 clone 仓库的时候,会出现下面的问题
1 2
| FATAL: split conf set, gl-conf not present for 'myproject' fatal: 无法读取远程仓库。
|
应该是 gitolite 的配置缓存出现问题了。 解决办法
1 2 3 4 5 6 7 8
| su git cd cd .gitolite mv gl-conf.cache gl-conf.cache.bak
|
查看日志
--graph
表示图形化展示日志。
1
| git log --pretty=format:"%h %s" --graph
|
git 回退本地提交(commit)
git reset –soft
参考
- gitosis
- gitolite
- Git Tools - Submodules
- How do I remove a submodule?
- git 导出源码
- How to ignore changes in git submodules