经验总结记录:
revert:
git revert 是将某个提交的代码重新恢复成原来的代码,会新增一个commit
比如:a merge 到 b,我现在需要将a合并过来的代码回退,可以在b的分支上执行
git revert -m 1 hash
-m 1 的意思是 以b为主干,将a的提交回退。
reset:
reset是将提交的commit直接删除。慎用!
cherry-pick:
cherry-pick是将某个提交复制到当前分支,但是时间不改。
rebase:主要用于合并commit,也能用于合并分支。与merge的区别是,使用merge合并分支,会在后面加一个merge的commit记录,如果使用rebase,会直接将commit记录搬过来,不会新增merge记录。推荐使用merge,如果需要回退,merge方便
GitFlow流程:
1:开发阶段,先从develop拉出一个功能分支,开始开发。
2:发版阶段,现在功能分支上修改版本号,然后提交。接着从develop拉出release分支,然后将功能分支merge到release分支,然后将release分支merge到develop、master。同时在master分支打tag,最后删除release分支。
release分支的命名方式: 日期+第几次发版。例子:2024121201
3:修复紧急bug(Hotfix),首先从master拉出Hotfix分支,接着在Hotfix上修改bug,改完之后分别merge到master、develop,同时在master打上tag
4:分支命名规范:功能分支以feature/开头,发布分支以release/开头,修复分支以hotfix/开头