• 为什么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个设备,也按多设备的方案去处理。

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

  • 相关阅读:
    一个在线下载地图XYZ瓦片的网站实现
    【爬虫】Python使用动态IP,多线程,爬取uncomtrade的数据
    方法重写经典实例
    idea添加文档注释
    【计算机网络Part 3】网络层(持续更新中……)
    冒泡排序记录
    行业案例|世界 500 强险企如何建设指标驱动的经营分析系统
    Hive3.1.2的HQL执行过程
    【LeetCode每日一题】——面试题10.11.峰与谷
    SpringBoot3 整合SpringSecurity
  • 原文地址:https://blog.csdn.net/kaszxc/article/details/134546102