1. 公-->私-->本-->私-->公
缺点:多了一个步骤,就多了一次申请时间,首先在公仓申请合并到私仓,私仓同意合并,获取到公仓最新版本;
优点:不容易污染公仓
2. 公-->本-->私-->公
优点:简化操作,因为每次都可以直接pull都是最新代码
缺点:因为放开了公仓的权限,如果直接push到公共仓库躲过代码公审,容易造成公仓污染
公->本->私->公 (分支名称:241107)
# 先将本地修改暂存起来,idea 里修改文件由 蓝-->白
git stash save "暂存2024110701"
# 拉取公仓最新代码,期间要数据账号密码
git pull origin 241107
# 恢复自己最新修改的文件,idea 里修改文件由 白-->蓝
git stash pop
# 查看修改文件,显示红色相对路径
git status
# 复制红色修改的文件相对路径,添加到暂存区,(如果修改文件多,一个一个添加)
git add <红色相对路径>
# 检查是否add完毕,红色相对路径应该全变绿色
git status
# 提交暂存区
git commit -m "提交注释"
# 推送到私仓(person名称是我自定义的,它映射一个仓库地址,idea的可以配置的)
git push person 241107
# 最后在私仓的web页面申请合并到公仓,公仓审核员审核通过,就可以合并
总结:企业里一般采用 第一种方式,还有是下面这种,与上面两种主要区别是多了一个私仓
3. 代码回滚
参考: Git恢复之前版本的两种方法reset、revert(图文详解)【学习】_git还原到上一个版本CSDN博客
3.1 reset重置
适用场景:本地仓库恢复到指定版本,且这个版本之后的提交都不要了,能不用就不用!必须用要慎用!
例子:个人提交垃圾到远程仓库而且量比较大,如那些什么说明文件等,不好通过手动删除垃圾的方式解决问题
# 查看版本号 (idea也可以操作,自行百度)
git log
# 重置指定版本
--hard 本地仓库回退指定版本,工作区和暂存区的改动都会被删除
--soft 本地仓库回退指定版本,但是工作区改动会保留
git reset --hard <版本号>
# 使用-f 强制低版本覆盖高版本 (如果已经提交到远程,需要更新远程)
git push -f origin <分支名称>
3.2 revert 撤销 (更符合实际场景,推荐使用)
适用场景:要撤销之前某个bug版本2,又不想把后面版本3删除
原理:生成个新的版本4,版本4会保留bug版本2后面的提交,但是撤销了bug版本2
# 查看版本号 (idea也可以操作,自行百度)
git log
# 撤销
git revert -n <bug版本号>