1. 查版本
git --version
2. 设置提交用户名
git config --global user.name “liaowm”
git config --global user.email "ttxgz163@163.com"
3. 设置命令别名
sudo git config --system alias.st status
sudo git config --system alias.ci commit
sudo git config --system alias.co checkout
sudo git config --system alias.br branch
4. 开启颜色显示
git config --global color.ui true
5. 配置优先级:
system: 对应 /etc/gitconfig, 为系统级配置文件
global: 对应 /home/liaowm/.gitconfig,为用户全局配置
无:对应具体对应git项目的.git/config
优先级: 无 > global > system
6. 在本地先建立版本库,在添加推送到远程 (gitosis):
首先在版本库管理上增加版本库的权限
在本地通过 git init -> git add ./ -> git ci ./ 创建好版本库
git remote add origin git@192.168.0.211:**.git
git push origin master
7. 在本地先建立版本库,在添加推送到远程 (gitolite):
首先在版本库管理上增加版本库的权限, 编辑gitolite-admin/conf、gitolite.conf:
repo nexus/.+$
C = @admin
RW+ = @admin
那么admin组的用户就有权限创建nexus目录下的任何git仓库了。
在本地通过 git init -> git add ./ -> git ci ./ 创建好版本库
git remote add origin git@192.168.0.211:nexus/**.git
git push origin master
8. 更改远程库服务器的ip地址
打开.git/config文件,修改url一项即可
9. 删除文件
rm *
git rm *
git ci *
10.git log 的时候顺便看每个commit修改的文件
git log --stat
11. 把某个文件回退到当前之前的第8个版本
git checkout HEAD~8 -- filename
git st //可看见这个文件的modified信息,如果没有这个文件的modified信息,则说明回退的版本不对,仔细查看
git commit filename //提交到库即可
12. 建立branch
例子:在master分支上建立一个叫G6的branch,专门用来做产品G6。这个分支可以归类为特性分支
git branch
//显示只有一个master分支
git branch G6
//基于当前版本建立一个叫G6的分支
git branch
//显示有两个分支,但是当前还是在master上
git checkout G6 //切换到G6分支
git branch
//显示有两个分支,当前已经切换到G6上了
git ci *** -m "***"
//提交修改
git push origin G6 //在远程版本库建立branch G6并把当前的改动同步到远程版本库
13. 从远程版本库获得分支
git clone 或 git pull 获得远程版本库
git branch //只会显示master, 因为在当地并没有创建branch,远程版本库的branch都放在origin下,以防止远程版本库分支和本地版本库分支冲突。
git branch -r 或者 git show-ref //会显示远程版本库中所有分支,可以看到显示如下:
origin/G6
origin/HEAD -> origin/master
origin/master
git checkout G6 //在本地创建分支G6,与远程服务器上的G6建立track关系
git branch //这时会显示两个branch,并且显示当前在G6上
14.建立里程碑并同步到远程仓库
git tag -m <msg> <tagname> [<commit>]
//基于某个commit创建历程碑tagname, 并给这个里程碑九路描述msg
git ls-remote origin tagname
//查找远程仓库上是否有tagname这个里程碑,可以用通配符,但是不能只用*,否则什么都查不到
git push origin tagname
//显示把里程碑推送到远程仓库
git pull
//后可以得到远程仓库的里程碑
例如:
git tag -m "V1.01, 修改PMU开关机电压" V1.01 //在本地建立了里程碑
git tag -n1 //可以看到下列描述:
V1.01 V1.01, 修改PMU开关机电压
git ls-remote origin V*
//可以查看到远程仓库已经建立了V1.01的tag, 这里不能用 git ls-remote origin *, 这样将看不到任何东西