[TOC]
在使用git合作开发的时候,流程是
- 在本机使用分支进行开发
- 开发完毕后先把master最新代码合入进来,处理好冲突,然后推送到远程分支,在gitlab上发送merge request给相关同学进行code review
- merge request通过后及时删除不用的分支
下面是详细的操作过程
1、创建并切换到新分支:
2、把本地修改的文件添加到暂存区去
3、创建改动说明(还未提交到远程仓库)
4、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
5、把本地仓库内容推送到远程
6、到gitlab上点击merge request
指定大佬给你review代码
其他一些命令
1.git stash
:当你想要保存当前的暂存区和工作区的状态的时候,你可以使用git stash命令。比如:你正在开发一个新功能,写了一些代码(保存暂存的和没有暂存的或没有记录的),现在需要去修复一个紧急bug,你又不想提交,这时你可以选择保存当前工作区和暂存区的内容,需要的时候恢复。
这个命令会保存当前的暂存区和工作区的状态,然后返回到HEAD(git reset —hard HEAD)
处理完毕后返回保存的工作区可以用git stash pop
弹出
2.版本回滚:git reset
|
|
其中的版本号没有必要写全,可以通过git log
查看版本号
git reset --hard HEAD^
是回退到上一个版本
3.当你正在一个新分支a上开发时,突然接到一个需要到以前分支b上进行bug修改的需求,这个时候先用git stash
暂存a分支的代码,然后git checkout b
分支改bug,这个时候你会发现a分支上的那些新增的文件也会在b分支上出现,但是你又不想在b分支上提交这些a分支上新增的文件,这个时候在b分支修改完代码后使用git commit -am 'fix: xxx'
提交b分支上的代码,并不会将新增文件算进去。
commit类型
init:项目初始化(用于项目初始化或其他某种行为的开始描述,不影响代码)
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
opt:优化和改善,比如弹窗进行确认提示等相关的,不会改动逻辑和具体功能等
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
- save:单纯地保存记录
- other:用于难以分类的类别(不建议使用,但一些如删除不必要的文件,更新.ignore之类的可以使用)
踩坑记
1.rebase:
假设你现在基于远程”master”,创建一个叫”mywork”的分支。现在我们在这个分支做一些修改,然后生成多个提交(commit).但是与此同时,有些人也在”master”分支上做了一些修改并且做了提交了. 这就意味着”master”和”mywork”这两个分支各自”前进”了。当在本地使用git pull origin master
后有冲突的文件并不会将最新版本的mywork分支与master分支合并,需要使用git rebase
一个一个版本进行解决冲突,在解决完冲突后,用”git-add”命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:git rebase --continue
直到最后都是最新版本。
可参考: