V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
piqizhu8
V2EX  ›  问与答

代码管理以前用 svn,现在用 git,还有其他的吗?还有更好的吗?开发一个 git 需要哪些方面的知识?

  •  
  •   piqizhu8 · 152 天前 · 1742 次点击
    这是一个创建于 152 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在写好代码后,每次都会用 git 提交到服务器, 有时候 想撤销, 或者在不同历史之间来回跳转,

    我发现用 git 实现这个需求很复杂,

    所以就提了这个问题

    谢谢

    29 条回复    2021-07-01 00:03:05 +08:00
    ysc3839
        1
    ysc3839   152 天前 via Android   ❤️ 1
    很复杂吗?用 git gui,菜单 visualize all branch history,找到你要跳转到的 commit,右键 reset branch to here 。
    aheadlead
        2
    aheadlead   152 天前   ❤️ 1
    撤销:git revert
    不同历史之间来回跳转: git checkout
    CEBBCAT
        3
    CEBBCAT   152 天前   ❤️ 1
    SVN/Git 这种软件叫做 version control system,你可以在维基百科上看到更多信息: https://en.wikipedia.org/wiki/Comparison_of_version-control_software#History_and_adoption

    但我想就像那句“很多人还没到拼天赋的阶段”一样,可能是你用得还不全。你可以配合 CI/CD,以及 git tag 来用。
    NotFoundEgg
        4
    NotFoundEgg   152 天前   ❤️ 1
    可以用 gui 搭配命令行使用 推荐一个 Sourcetree
    thunderw
        5
    thunderw   152 天前
    这种日常需求,自己开发一个,不如钻研一下工具怎么用。
    开发的工作量的大的超乎你的想象。
    aheadlead
        6
    aheadlead   152 天前
    基操勿六。。
    aheadlead
        7
    aheadlead   152 天前
    基操勿❤️
    DonkeyBenjamin
        8
    DonkeyBenjamin   152 天前
    [pijul]( https://github.com/jneem/pijul), 有论文证明其正确性。
    ampedee
        9
    ampedee   152 天前 via Android   ❤️ 3
    如果觉得光记命令复杂,推荐看看 git 的底层原理。底层原理其实非常简洁,有很多相关的资料,我还写过一篇博客粗浅地介绍了一下: https://www.waynerv.com/posts/git-undo-intro/
    IgniteWhite
        10
    IgniteWhite   152 天前   ❤️ 2
    不会用 Git,因为我不熟悉 VCS 的用法,所以要学习如何用 Git ❌
    不会用 Git,但我熟悉 VCS 的所有原理,我自己写一个 VCS ❌
    不会用 Git,我觉得 VCS 的基本操作好复杂,我自己写一个 VCS ✅

    网友:???
    falcon05
        11
    falcon05   152 天前 via iPhone
    开发一个 git ?
    我看好你…
    msg7086
        12
    msg7086   151 天前
    Git 不复杂。

    代码管理工具,说白了和你大学里写的什么学生管理系统,是差不多的东西。
    本质上是把所有代码的变更保存在一个数据库里,然后 CRUD 。
    学生管理系统,有班级有学生有老师。
    代码管理系统,有提交有文件有分支。
    创建提交就是新建数据库记录。取 diff 就是找两条数据记录,找到文件然后计算差异。
    (或者直接存取文件差异,然后计算文件结果。)

    自己开发一个类似 Git 的 VCS 不算很难。
    如果你想要练手,当然可以自己写一个。
    写完以后你应该就会搞懂 Git 了。

    重新实现一套软件可能是理解软件工作原理最好的方式之一了。
    henryhu
        13
    henryhu   151 天前
    git 是复杂的,因为精细管理开发协作是复杂的
    TomVista
        14
    TomVista   151 天前
    git clone
    git pull
    git push
    git checkout
    git branch
    git reset

    剩下的百度,解决不了,社区找老哥.一共 6 个 不难学吧.
    shuxhan
        15
    shuxhan   151 天前
    @TomVista 这几个指令能满足 95%的需求
    wms
        16
    wms   151 天前
    @TomVista
    git stash
    git diff
    还差这两个比较重要的
    wangkun025
        17
    wangkun025   151 天前
    我都是 git log,然后 git reset --hard log_number
    ijse
        18
    ijse   151 天前   ❤️ 1
    fossil-scm 不错,sqlite 作者写的,结合了 svn 和 git 的优点
    TomVista
        19
    TomVista   151 天前
    @wms 没用过,补课补课
    TomVista
        20
    TomVista   151 天前
    @TomVista #14
    加一个 git commit
    VDimos
        21
    VDimos   151 天前 via Android
    这玩意儿的算法很复杂的,论文很多的,想写的话慢慢读吧
    Leonard
        22
    Leonard   151 天前
    支持 lz 开发一个新的
    xuboying
        23
    xuboying   151 天前
    看这个贴子有种穿越到 NN 年前的感觉
    Smash
        24
    Smash   151 天前
    @wms cherry pick 和 rebase 也很重要,特别是在主分支不允许 merge 的情况下
    wms
        25
    wms   151 天前
    @Smash cherry-pick 好东西,谢谢分享
    felixcode
        26
    felixcode   151 天前   ❤️ 1
    说 git 不复杂的,研究一下源码再说吧
    https://github.com/git/git
    mangoDB
        27
    mangoDB   151 天前
    「学会使用 git 」的难度远远小于「开发版本控制器」
    swsh007
        28
    swsh007   151 天前 via Android
    @ijse hipp 是个大师级的人物,Lemon,sqlite,althttpd 都属于那种异常短小而精致的作品。
    kikikiabc
        29
    kikikiabc   151 天前 via iPhone
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1077 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    ♥ Do have faith in what you're doing.