git合作开发简单流程

[TOC]

在使用git合作开发的时候,流程是

  • 在本机使用分支进行开发
  • 开发完毕后先把master最新代码合入进来,处理好冲突,然后推送到远程分支,在gitlab上发送merge request给相关同学进行code review
  • merge request通过后及时删除不用的分支

下面是详细的操作过程

1、创建并切换到新分支:

1
git checkout -b newBranchName

2、把本地修改的文件添加到暂存区去

1
git add .

3、创建改动说明(还未提交到远程仓库)

1
git commit -m '代码版本说明'

4、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)

1
git pull --rebase origin master

5、把本地仓库内容推送到远程

1
git push

6、到gitlab上点击merge request指定大佬给你review代码


其他一些命令

1.git stash:当你想要保存当前的暂存区和工作区的状态的时候,你可以使用git stash命令。比如:你正在开发一个新功能,写了一些代码(保存暂存的和没有暂存的或没有记录的),现在需要去修复一个紧急bug,你又不想提交,这时你可以选择保存当前工作区和暂存区的内容,需要的时候恢复。

这个命令会保存当前的暂存区和工作区的状态,然后返回到HEAD(git reset —hard HEAD)

处理完毕后返回保存的工作区可以用git stash pop弹出

2.版本回滚:git reset

1
git reset --hard 版本号

其中的版本号没有必要写全,可以通过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直到最后都是最新版本。


可参考:

git命令

Github 创建新分支

热评文章