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

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

  •  
  •   piqizhu8 · 2021-06-29 21:01:07 +08:00 · 2293 次点击
    这是一个创建于 1029 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    所以就提了这个问题

    谢谢

    29 条回复    2021-07-01 00:03:05 +08:00
    ysc3839
        1
    ysc3839  
       2021-06-29 21:06:57 +08:00 via Android   ❤️ 1
    很复杂吗?用 git gui,菜单 visualize all branch history,找到你要跳转到的 commit,右键 reset branch to here 。
    aheadlead
        2
    aheadlead  
       2021-06-29 21:13:24 +08:00   ❤️ 1
    撤销:git revert
    不同历史之间来回跳转: git checkout
    CEBBCAT
        3
    CEBBCAT  
       2021-06-29 21:17:26 +08:00   ❤️ 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  
       2021-06-29 21:29:30 +08:00   ❤️ 1
    可以用 gui 搭配命令行使用 推荐一个 Sourcetree
    thunderw
        5
    thunderw  
       2021-06-29 21:53:10 +08:00
    这种日常需求,自己开发一个,不如钻研一下工具怎么用。
    开发的工作量的大的超乎你的想象。
    aheadlead
        6
    aheadlead  
       2021-06-29 21:59:28 +08:00
    基操勿六。。
    aheadlead
        7
    aheadlead  
       2021-06-29 21:59:37 +08:00
    基操勿❤️
    DonkeyBenjamin
        8
    DonkeyBenjamin  
       2021-06-29 22:04:14 +08:00
    [pijul]( https://github.com/jneem/pijul), 有论文证明其正确性。
    ampedee
        9
    ampedee  
       2021-06-29 22:17:58 +08:00 via Android   ❤️ 3
    如果觉得光记命令复杂,推荐看看 git 的底层原理。底层原理其实非常简洁,有很多相关的资料,我还写过一篇博客粗浅地介绍了一下: https://www.waynerv.com/posts/git-undo-intro/
    IgniteWhite
        10
    IgniteWhite  
       2021-06-29 22:27:00 +08:00   ❤️ 3
    不会用 Git,因为我不熟悉 VCS 的用法,所以要学习如何用 Git ❌
    不会用 Git,但我熟悉 VCS 的所有原理,我自己写一个 VCS ❌
    不会用 Git,我觉得 VCS 的基本操作好复杂,我自己写一个 VCS ✅

    网友:???
    falcon05
        11
    falcon05  
       2021-06-30 00:29:37 +08:00 via iPhone
    开发一个 git ?
    我看好你…
    msg7086
        12
    msg7086  
       2021-06-30 03:28:32 +08:00
    Git 不复杂。

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

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

    重新实现一套软件可能是理解软件工作原理最好的方式之一了。
    henryhu
        13
    henryhu  
       2021-06-30 08:30:20 +08:00
    git 是复杂的,因为精细管理开发协作是复杂的
    TomVista
        14
    TomVista  
       2021-06-30 08:51:25 +08:00
    git clone
    git pull
    git push
    git checkout
    git branch
    git reset

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