用于git merge练习
常规步骤
克隆仓库
- git clone xxxx
- git checkout -b dev-xxx-test,xxx为自己标识的id,例如本例dev-xxx-test
命令 | 描述 |
---|---|
git clone | 克隆仓库 |
git checkout -b | 在本地创建并切换到新命名的分支 |
内容修改并提交
- 在test.md末尾追加想添加的的内容,例如增加一行:“test9.txt”
- git add test.md
- git commit -m"feat: Add test9"
- 在test.md末尾追加想添加的的内容,例如增加一行:“test10.txt”
- git add test.md
- git commit -m"feat: Add test10"
- git push origin dev-xxx-test
命令 | 描述 |
---|---|
git add | 添加文件到git 缓存 |
git commit -m | 一次提交,本次提交描述信息为-m后的描述 |
git push | 推送当前的本地分支到远程分支 |
合并多次提交为一次提交
建议先阅读一下git merge squash 和 rebase 区别,
所有功能开发完成后等待合并,例如本次有2个commit,合并到master分支。需要将一个功能的多个commit合并成一个commit再进行合并。开发规范指导链接见
开发规范
- git rebase -i master,查看自己分支和master分支的commit差异
- git config --global core.editor “vim”,设置git默认编辑器为vim(可选),后续以vim为例子,若不用vim,根据git 弹出的相应提示按照操作即可
- 输入命令i,将除了第一个的所有commit前的pick修改为s,pick和s的含义见弹出的提示
- 按下esc键,再输入:wq
- 弹出行命令框,用于修改多个commit合并成一个commit的文字描述。输入i,删除之前所有的commit文件描述,添加合并后的描述(例如feat:Add test.text content),按下esc键,再输入:wq,ps:不同git 版本有一些差异,按照命令行提示完成(2~4即可)
- git log,查看应该只有一次提交
- git push -f,强制推送到远程仓库
- 再git网页上发起merge request请求,让review人合并代码,并删除开发分支
命令 | 描述 |
---|---|
git rebase -i | 查看自己分支和master分支的commit差异 |
git log | 查看自己分支的历史提交记录 |
git push -f | 强制推送到远程仓库 |
冲突解决方式
- git checkout master,切换到master分支
- 修改test.md第一行内容为test11.txt
- git add test.md
- git commit -m"feat:test rebase conflict on master"
- git push
- git checkout dev-xxx-test
- 修改test.md第一行内容为test11222.txt
- git add test.md
- git commit -m"feat:test rebase conflict on dev-xxx-test"
- 修改test.md第二行内容为test2222.txt
- git add test.md
- git commit -m"feat:test rebase conflict on dev-xxx-test"
- git rebase -i master,查看自己分支和master分支的commit差异
- 找到冲突文件,手动解决冲突(将test.md中包含有"====="之间的内容修改)
- git add test.md
- git rebase --continue
- git add test.md
- git rebase --continue
- 然后继续执行合并多次提交为一次提交4之后的步骤即可