
| 服务器地址 | 192.168.1.203 |
| 软件名称及版本 | Subversion/version 1.6.11 |
| 客户端软件 | TortoiseSVN |
| SVN访问地址 | svn://192.168.1.203/project/doc |
| 用户和密码 | 请向管理申请 |
| 备注 | 操作较为简单,在此不描述,有需要可向管理索要操作相关文档 |
2.1mysysgit安装
2.1.1软件获取
svn://192.168.1.203/project/doc/1.过程库/4.软件管理/1、版本管理软件
2.1.2软件安装
本地直接双击安装,一直下一步即可。
2.2Git基本使用
2.2.1登录gerrit系统获取项目克隆地址
✧Gerrit地址:http://192.168.1.203/
✧用户/密码:向管理员申请
✧克隆地址:登录gerrit后,按照如下操作,Projects—>List—>选择克隆的项目—>点击SSH后即可发现克隆地址,见下图
2.2.2项目获取方法
✧登录mysysgit后生成本地ssh-key
| $ ssh-keygen -t rsa ##可以设置密码,也可以不设置 |
✧根据上面获得克隆地址,在本地选好存放项目的路径后,在mysysgit中执行克隆即可,mysysgit中一些基本命令说明:
⏹命令基本与linux命令一致
⏹不一致的命令有:
◆切换目录:cd /d
2.2.3Git 基本操作命令
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
gitrm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
gitconfig --list 看所有用户
git ls-files 看已经被提交的
gitrm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
gitrma.a 移除文件(从暂存区和工作区中删除)
gitrm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
gitrm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
2.3git日常基本操作流程(举例)
前提条件:
✧在192.168.1.203 上通过gerrit已经建立一个TestGit项目(管理员操作)
✧已经增加完成ssh-key(个人操作)
✧设置完成用户和邮件信息(个人操作)
⏹gitconfig --global user.name "baiyunheng"
⏹gitconfig --global user.email 350200139@qq.com
⏹在gerrit系统中管理已经设置完成(管理员操作)
2.3.1克隆项目(一)
git clone ssh://baiyunheng@192.168.1.203:29418/TestGit
2.3.2本地库的操作(二)
✧新建里一个文件
mkdirtestproject
cdtestproject
vi 1.txt
✧gitadd命令
cd ..
git add .
✧git commit命令
git commit . –m “test1”
说明:在以上操作完成或者之间可以使用一些查看命令
⏹git status
⏹git log
⏹gitreflog
2.3.3提交主库审核
✧gitpush命令
git push origin master:refs/for/master
说明:第一次会报错,解决方法如下(也可以在push前执行)
scp -P 29418 baiyunheng@192.168.1.203:hooks/commit-msg .git/hooks/
git commit --amend
✧git pull命令
git pull 拉去最新的程序
2.3.4在gerrit设定审批人员
✧登录gerrit
http://192.168.1.203/
✧设定review人员
My----》Changes 后选择你需要review的文件单击
添加人员账号(例如:admin)点击Add Reviewer
2.3.5Gerrit审核通过或拒绝
✧在选择-2表示拒绝
✧在选择+2表示通过
2.3.6拒绝处理
✧对源文件修改
✧再提交
⏹git add 1.txt
⏹git commit 1.txt --amend ##一定要用amend ,为保证
✧然后进行push
⏹git push origin master:refs/for/master
说明:一直到review通过为止,或者放弃本次修改
3Jenkins项目构建及部署
访问地址:http://192.168.1.203:8081/jenkins/(如果要增加用户需要请联系管理员或者自己进行注册)
使用的方法请参考例子:
4其他小技巧
4.1.gitignore
✧作用:忽略不需要提交的文件或文件夹
✧具体方法如下:
gitconfig --global core.excludesfile ~/.gitignore ##指定.gitignore的位置
.gitignore内容可参考SVNsvn://192.168.1.203/project/doc/1.过程库/3.成果文档/1.版本管理/.gitignore
内容
# 忽略*.class
*.class
# 忽略 classes/ 目录下的所有文件
classes/
4.2自动添加reviewer
A.痛苦的做法:
1.git push origin HEAD:refs/for/master2. 在gerrit管理网站,每个commit一个设置reviewer.
B.直接命令里面设置
git push origin HEAD:refs/for/master%r=fanxu.china@gmail.com
其中, %r 指定了code reviewer 但这么长的一串, 每次push都来上这么一次,也挺痛苦的。
C.最舒适的做法
首先 ,配置一个远程分支,将所有的参数,都一次性配置好。
修改工程目录下的 .git/config 文件, 添加以下字段:
[remote"review"]
url = ssh://fanxu123@fanxu.com:29418/test
push = HEAD:refs/for/master%r=fanxu.china@gmail.com
然后 ,以后每次推送直接用以下命令就可以啦, 完全无痛!
gitpush review
push = HEAD:refs/for/master%r=fanxu.china@gmail.com, r=other_man@lenovo.com
