Git Gud at git 它是什么?为什么?后续步骤

2025-05-25

Git Gud 在 git

它是什么?

为什么?

后续步骤Next steps

大家举手,谁知道git?

不仅仅是你为了神奇地公开你的修改而经历的标准//git pull神秘的程序,谁真正了解git?这里有谁了解它的内部树形模型,了解它运作良好的原理?git commitgit push

如果您还没举手,可以跳过这篇文章,或者直接跳到源代码页面,帮助实现更多功能。不过,您可能需要稍等片刻再做出贡献;我正在将其从 WASM 移植到 JavaScript。

如果你知道它是如何工作的,我可以推荐一个我做的工具吗?它叫做Git Gud

它是什么?

Git Gud 是一个基于 Web 的 Git 模拟器。它以可视化的方式展示 Git 树,并且你可以运行命令来查看它们对树的操作。首先进行一次初始提交:

初始状态

你会注意到它被标记为“c0”。这是提交 ID。因为我们没有任何实际文件需要跟踪——那是为更高版本准备的——所以我们没有任何需要哈希处理的内容,并且在初始构建时,我们只是按顺序排列提交。第一个自动生成的提交是“c0”,第二个是“c1”,依此类推。说到第二个提交,点击底部区域并尝试输入:

commit
Enter fullscreen mode Exit fullscreen mode

您会看到添加了另一个提交:

第一次提交

就像在 Git 中一样,您可以检出单个提交:

checkout c0
Enter fullscreen mode Exit fullscreen mode

已签出

您还可以使用 创建一个新分支branch,使用 检出它checkout b1,提交它,merge再将其放回,等等。例如,输入以下命令序列:

commit
checkout c0
branch
checkout b1
commit
checkout b0
merge
Enter fullscreen mode Exit fullscreen mode

你会得到这个:

完毕

如果您想重置,那么,没有 git 命令可以做到这一点,但我们已经重新利用了init

已初始化

为什么?

如果你查看 Git Gud 的提交历史,就会发现一个周末的开发量激增。那个周末是RIT 的年度黑客马拉松BrickHack。这是一次有趣的经历,也是让原型启动并运行起来的好机会。

不过,它确实引入了一些问题。代码质量不太好,因为我们没有时间在短短的 24 小时内真正思考这些问题。我们用 WebAssembly 编写了代码,而不是纯 JavaScript,因为纯 JavaScript 开发和调试起来更省力,因为团队成员中有人只懂 C++,在黑客马拉松1开始前的几天里,他不确定自己能否在短短几天内学会 JavaScript

1:事实证明,他在黑客马拉松期间大约一个小时就学会了,至少能够编辑一些绘图代码了。哎呀。这么说来,他本来可以做得更好。

后续步骤Next steps

目前,Git Gud 还很简陋,如果你尝试一下就会发现。我们想要实现不少功能,其中大部分功能都是为了让它更像真正的 Git。例如:

  • 如果你git在行首输入(比如,出于使用真实 git 的习惯),请将其从输入中删除,而不是中断
  • 当你做错事时,信息性(在某些情况下也称为任何)错误消息
  • 变基
  • 提交消息
  • 有名字的分支
  • 解析标志,-b例如checkout
  • 文件更改,而不仅仅是抽象的“提交”
  • 更多主题。黑色配琥珀色很漂亮,但如果能提供多种颜色就更好了(而且其实也不太难)。

还有其他想法吗?在我进一步开发的过程中,你还有什么想告诉我的吗?你可以提出问题,或者在这篇文章下评论。

文章来源:https://dev.to/nicartley/git-gud-at-git-5d9k
PREV
使用 WSL、Docker、tmux 和 VSCode 在 Windows 上构建 Linux 开发环境
NEXT
💜 个人品牌 - 为了你的职业生涯💼