目录:
一、git工作流
一、git工作流
1、git 版本管理基本概念
remote远程仓库
repository本地仓库
index索引区
index是新commit的写照;git add已经将数据传递到本地仓库了,在index中有个指向blob对象的索引记录;因此,移除时执行git rm --cache xxx
workspace工作区
2、工作流对比及应用
推荐流程:fork -> clone -> commit -> pull -> rebase(merge) -> push -> pull request
实际git工作流应该考虑:迭代周期、自动集成部署、功能分支独立、多环境部署发布、fix流程;
master作为上线提测前的主代码分支去管理,提测、上线多环境各以master为下游,自动部署。
Git Flow、GitHub Flow、GitLab Flow的对比区别看下面附录。
3、git 常用命令
4、常见类似命令
git rebase\git merge
都是合并分支,当执行rebase操作时,git 会从两个分支的共同祖先 O 开始提取 当前分支A上的修改,即 (A-1)这个commit,再将 master 分支指向 目标分支 T 的最新提交即(T-1) 处,然后将刚刚提取的修改应用到这个最新提交后面(A- 1 -> T-1 )。如果提取的修改有多个,那git将依次应用到最新的提交后面(A- * -> T-1 -> T-2)
因此,rebase 在时间下不穿擦的情况下比merge优雅;merge保证时间顺序,会多出一个merge记录。
5、推荐规范命令
git merge --no-ff (合并保存单独节点,便于回滚)
Squash 多个commit
附录:
掘金 - 字节研发设施下的 Git 工作流
Git 工作流程 - 阮一峰
简书 - 简单易懂理解Git的工作原理(二)Index空间
CSND - git merge 与 git rebase的区别