• 为什么Git的教程都那么繁杂?


    我在花了两个小时左右的时间大致了解了git的工作原理与常用指令后后,就已经能够使用它了。

    可是在网上看到的那些教程为什么都是30多集以上的,更有甚者有50多集。

    Git作为一个工具,我感觉能用就行了,何必再花这么大心思去学呢?使用者又不去重构一个git,那些教程这么繁杂真的好吗?
    因为 “同步” 这2个字本身就很复杂,细分:

    1. 我的修改 要不要 让别人知道
    2. 别人的修改 要不要 让我知道
    3. 我的删除 要不要 删别人的
    4. 别人的删除 要不要 删我的
    5. 我的修改 与别人的修改 有冲突怎么办

    只不过,绝大部分人没有深度思考 + 拆分的能力,而觉得 “实时同步“ 很简单,即 “你按我脑海中的想法去做,我想留就留,我想删就删,如果我想错了,你还得救回来“。

    你不理解 “同步” 的复杂性,自然也就不理解 “为什么Git要搞这么多事情”。这个复杂性对“云备份”同样适用。

    我就亲耳所闻,在星巴克,一个妹子和苹果客服,通话了1个多小时,妹子一直在咆哮,骂iCloud又贵又不好用,反反复复表达3个问题:

    1. 为什么我删的图片远程的还有
    2. 为什么我删的图片远程也删了
    3. 为什么远程删的图片本地的还留着

    这就是上面表述的客观体现。

    华为的案例,我认为非常经典,这里单独伶出来分享。

    vector同学想要删除华为云的照片,必须要先打开同步,直到本地端和云端同步完成,才可以执行删除操作。而这是华为云的官方操作,并且这个操作流程通过软件以落实到位,不满足要求就不给你删。

    我们可以略微分析一下,如果不这么做,对于同一个“删除云端文件”而言,考虑3个本地设备的情形:
    1、用户删了云端 A.jpeg,ABC 3个参与同步的设备中 B存在1个有副本,恰巧这个设备最近几个月没同步。这个设备下一次同步后,云端的 A.jpeg 都会再次出现,因为B同步时,A.jpeg会被再次上传到云端。
    2、用户删了云端 A.jpeg,ABC3个设备都没有副本,那就真的删了

    对用户而言,一个单一的 “删除云端文件操作”,根据不同的情形,它的结果是不单一的。普通客户不会仔细分析背后的机理,而会直接认为 “垃圾软件,删文件都删不了”。

    作为产品设计,为了让“单一的操作出现单一的结果“,就必须对上述情况进行简化,例如 ”要删除云端的文件,必须先满足所有设备对 A.jpeg 的共识是一致的“,从而确认 “删除云端“ 的操作,不会因为其他设备的后续同步带来歧义。即使只有1个设备,也按多设备的方案去处理。

    一个删除操作都尚且如此,更何况是修改文件内容?

  • 相关阅读:
    Leetcode 75.颜色分类
    【外卖项目实战开发一】
    常见视频传输接口
    java基础学习-多线程笔记
    nginx解决vue跨域图片问题
    安装xilinx烧写器驱动
    【PAT(甲级)】1062 Talent and Virtue
    【工作学习方法论 一】成体系的学习方法论
    出生医学证明识别易语言代码
    Kotlin前置检测判断check,require,requireNotNull
  • 原文地址:https://blog.csdn.net/kaszxc/article/details/134546102