git必知必会-分支合并那些事

背景

小菜:“大鸟我最近碰到一件怪事”

大鸟:“哦?说来听听。”

小菜:“事情是这样的…”

旁白
如下图,小菜基于 master 分支的提交 C1 迁出了一条新分支 dev,并添加了 feature.js(D1),这是一个新功能;

然后他切换到 master 分支,发现此时同事有一个新提交 C2。小菜很自信,他直接把自己的 dev 分支合了过来(E1),然后发布到了测试环境。

第二天,QA 提了 bug,小菜排查后发现是由于昨天添加了 feature.js 的原因,所以小菜只好把昨天的提交(E1) revert 了(E2);

之后小菜切换到自己的 dev 分支修复 fuature.js 的问题。他添加了一个 fix.js 并 import 了 feature.js。

这次小菜长了心眼,在合并 dev 分支后(F),他在本地自测了一下。但奇怪的是,他发现合并后自己的 feature.js 文件消失了!

大鸟:“我知道了,要解决这个问题,我们得先了解一下分支合并的一些相关知识…”

阅读更多
git必知必会-基础知识

Git 是什么

一个强大的版本控制软件

官方文档

交互式学习站点-learngitbranching

基础概念

  • 四种状态:
    • 未跟踪:还没有参与版本控制的状态
    • 已修改:表示修改了文件,但还没保存到数据库中
    • 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
    • 已提交:表示数据已经安全地保存在本地数据库中
  • 四个区域
    • Git 仓库:是 Git 用来保存项目的元数据和对象数据库的地方
    • 工作目录:是对项目的某个版本独立提取出来的内容
    • 暂存区域:保存了下次将要提交的文件列表信息
    • 远程仓库
阅读更多