Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
官网:https://git-scm.com/
用户信息
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
查看配置信息
$ git config --list
在工作目录中初始化新仓库
$ git init
从现有仓库克隆
$ git clone [url]
克隆多个项目
$ git remote -v
origin url-1
origin url-2
origin url-3
从仓库更新数据
$ git pull
上传更新数据
$ git push
推送制定仓库
$ git push [remote-name] [branch-name]
远程仓库的删除和重命名
$ git remote rename oldname newname
列显已有的标签(版本迭代)
$ git tag
git show [tag]}
Git 查看提交历史
$ git log
修改最后一次提交
$ git commit --amend
取消已经暂存的文件
$ git add .
$ git status
$ git reset HEAD
$ git status
角色与项目角色对应关系
GitLab角色 |
项目角色 |
Owner(拥有者) |
Git管理员 |
Master(管理员) |
开发主管、项目主管等 |
Developer(开发者) |
开发人员 |
Reporter(报告者) |
测试人员、产品经理等 |
Guest(访客) |
其它人员 |
如果整个项目就你一个人,那么你就身兼Owner,Master,Develop三个角色。又或者团队里并没有专职的Git管理员,那么开发主管或项目经理就集Owner和Master两个个角色于一身。划分角色的本意是为了减少代码管理、研发、测试、发版、回滚等问题。切不要因为术语本身和组织里面人员的对应对流程造成误解,进而影响效率。
master和develop是仓库中长期稳定存在的分支。feature、release、hotfix分支是临时分支,用完后应删除。
master分支(主分支)面向生产环境,永远处在即将发布(production-ready)状态,该分支没有任何已知的问题。。禁止直接在master分支做任何修改和开发。只能从release和hotfix分支合并通过测试的代码。
develop分支(开发分支)面向开发环境。是日常开发的分支。此分支代表目前开发进度。
开发新功能时,为保证develop分支的相对稳定,需要从develop分⽀拉出feature分支(特性分支)。开发完成后,需要再合并入develop分支。
命名规则:feature-日期-关键字。例如:feature-20170531-perf-and-refactor-code-style)
时间使用年月日进行命名,不足2位补0,关键字全部小写,单词以“-”分隔
release分支(预发布分支)面向测试环境。预发布分⽀是指在发布正式版本之前(即合并到master分⽀之前),从develop分支拉出来的一个分支。预发布结束以后,必须合并进develop和master分⽀。本质上,release分支是develop分支的一个冻结副本,release拉出来的时候就意味着要发布的需求已经冻结,在release上唯一可以继续做的改动只有这些需求的bug修复。release分支拉出后,在develop分支上可以继续做新功能开发,这样新功能开发和版本测试发布可以并行。
命名规则:release-日期-版本,例如:release-20170508-v1.0.0
时间使用年月日进行命名,不足2位补0,关键字全部小写,单词以“-”分隔
软件正式发布以后,难免会出现bug。这时就需要创建⼀个分⽀,进⾏bug修补。Hotfix分支(热修复分支)是从master分⽀上指定的tag版本拉出来的。Bug修复后,需要再合并进master和develop分支。
命名规则:hotfix-日期-版本,例如:hotfix-20170508-v1.0.1
时间使用年月日进行命名,不足2位补0,关键字全部小写,单词以“-”分隔
新建一个新分支
$ git branch newBranch
切换分支至新分支
$ git checkout newBranch
合并分支
$ git checkout master
$ git merge hotfix
当前所有分支的清单
$ git branch
查看各个分支最后一个提交对象的信息
$git branch -v
查看哪些分支已被并入当前分支
$git branch --merged
查看尚未合并的工作
$ git branch --no-merged