piqizhu8
V2EX  ›  问与答

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

  •  
  •   piqizhu8 · Jun 29, 2021 · 3589 views
    This topic created in 1953 days ago, the information mentioned may be changed or developed.

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

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

    所以就提了这个问题

    谢谢

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

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

    网友:???
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Jun 30, 2021 via iPhone
    11
    开发一个 git ?
    我看好你…
    msg7086
    msg7086
    Jun 30, 2021
    12
    Git 不复杂。

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

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

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

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