Github名词释义
- master: 默认开发分支
- origin: 默认远程版本库
- Index / Stage:暂存区
- Workspace:工作区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
Git原理
- 分布式版本控制
- 直接记录快照,而非差异比较
- 五个工作区域:工作区,暂存区、本地代码库、本地远程代码库、远程远程代码库
- 四种文件状态:未修改,已修改、已暂存、已提交,已推送(已推送=未修改)
Git操作
新建代码仓库
1 | # 在当前目录新建一个Git代码库 |
配置
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。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# 显示当前的Git配置
$ git config --list
# 编辑Git配置文件
$ git config -e [--global]
# 设置提交代码时的用户信息
$ git config [--global] user.name "[name]" # 修改用户名
$ git config [--global] user.email "[email address]" # 修改邮箱地址
# 修改编译器为 vim
$ git config --global core.editor vim
# status 缩写为 st
$ git config --global alias.st status
# checkout 缩写为 co
$ git config --global alias.co checkout
# branch 缩写为 br
$ git config --global alias.br branch
# commit 缩写为 ci
$ git config --global alias.ci commit
增加/删除/修改文件
1 | #查看状态 |
代码提交
1 | # 提交暂存区到仓库区,message代表说明信息 |
分支
1 | #显示所有本地分支 |
标签
1 | $ git tag #列出所有本地标签 |
1 | # 删除远程tag |
查看信息
1 | # 显示有变更的文件 |
远程操作
1 | # 下载远程仓库的所有变动 |
1 | $ git push [remote] [branch] # 上传代码及快速合并,把所有文件从本地仓库推送进远程仓库 |
撤销
1 | $ git reset --hard HEAD # 撤销工作目录中所有未提交文件的修改内容 |
1 | # 恢复暂存区的指定文件到工作区 |
其他
1 | $ git archive # 生成一个可供发布的压缩包 |
Gerrit日常开发
- master 常驻分支,要求常驻分支时刻可用
- feature-XXX 功能分支,新建分支用于开发新功能
- bugfix-XXX 问题分支,新建分支用于修改问题
下载版本 BASE_IPC_HI3518EV200_SPC040
1
git clone & scp
新建分支
1 | git checkout -b feature-XXX master |
在新分支上完成功能修改和测试验证
1 | git add |
将功能合并到master
1 | git checkout master # 切换到master分支 |
合并操作有如下四种方式:
git merge --no-ff -m "XXXX" feature-XXX/bugfix-XXX
合并修改到master并commit,在master中可以查看到分支的log历史。如果产生冲突,通过git status
查看冲突文件,手动解决冲突后git add
,git commit
git merge --squash -m "XXXX" feature-XXX/bugfix-XXX
合并修改到master分支并commit,分支的所有修改一次commit到master,无法在master中查看分支的log历史,需要稍后手动git commit
git rebase feature-XXX/bugfix-XXX
合并修改到master分支,master的修改和commit将接在分支修改的末端,合并后log中无法查看到分支的存在git cherry-pick [Commit-ID]....
合并指定的修改到master分支,分支修改会合并到master历史log的末端,如果发生冲突,手动解决冲突后git add
,git cherry-pick --continue -m "XXXX"`
git branch -d feature-XXX/bugfix-XXX `
删除指定分支
上传远程服务器
1 | git push origin master:refs/for/master |
git push origin master:refs/for/master
本文作者:冰羽
本文地址: https://bingyublog.com/2018/08/24/Git常用命令速查表/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!