使用 git,既要用「命令行」也要用「UI」

2021-12-08 09:00:13 +08:00
 AndyAO

git 新手另外的困惑主要是集中在命令行和用户界面的选择上。(git CLI 设计太烂)

感觉在这个用户界面盛行的年代,新手刚开始的时候,往往用的是后者。

如果你不了解命令行,你就不能够真正的了解 git ,当出现问题的时候,你很难解决,而且你也很难根据自己的需求自动化 git 。

如果你不使用用户界面,那就意味着你完成各种交互式操作的时候,效率将非常低。

对于 git 来说,不用命令行是浅薄的,只用命令行是不明智的。

因为 cli 根本就不适合那种,需要根据各种信息,频繁进行操作的交互式场景,这些挑挑拣拣的工作在版本控制中有很多很多。

例如,你可能要浏览下当前的工作树改动,然后决定将特定的某个代码块暂存,你可能要在提交之前浏览暂存区中几个文件,因为你不太确定到底发生了什么样的更改。

git cli 也为此设计了交互式的模式,例如,交互式的添加和变基,但总的来说功能,并不能很好的满足要求,展示信息太少,呈现方式不丰富,操作精准度太差。

这个时候就要使用 ui ,当然很不推荐使用 gui ,比起敲击单个按键来说,用快捷键的效率实际上并不高。

况且,要根据不同的情况在 cli 和 gui 之间进行切换也是很麻烦的,用户界面在很多时候不是想用就可以用的。

最佳的方案是 cli 配合 tui ,它们可以完美互补,无缝衔接,效率要高很多。

tui 推荐 gitui ,这是用 rust 编写的工具,设计的目标就是「快」,以没有任何卡顿和加载大型项目速度飞快著称。

关键是即使在 Windows 上兼容性也非常好,不会出现动不动 tui 就完蛋的情况。

功能也十分简洁,作者的设计目标很明确,就是解决那些 cli 上难以完成的交互式操作,软件尺寸很小,功能很精悍,没有各种各样需求很低的花哨功能干扰使用。

本来自己是 SourceTree 的忠实用户,更换到 gitui 后相见恨晚,效率提升太大。

对了,还要注意的是,必须在你的命令行上添加 git 相关 prompt ,这是最基础的,这样你可以实时的看到现在的情况。

9201 次点击
所在节点    程序员
83 条回复
soulzz
2021-12-08 09:13:45 +08:00
jb 全家桶不香吗
别去腾腾什么第三方 git,都是辣鸡
szyp
2021-12-08 09:22:41 +08:00
tig 了解一下
princelai
2021-12-08 09:33:02 +08:00
lazygit ,但最常用的还是 pycharm+命令行
yolee599
2021-12-08 09:33:46 +08:00
TortoiseGit 了解一下?
chucongqing
2021-12-08 09:36:42 +08:00
命令行 + vscode 解决冲突查看 diff
Cyron
2021-12-08 09:37:12 +08:00
fork 竟然不是永远的神?
xz410236056
2021-12-08 09:42:44 +08:00
@Cyron #6 fork 唯一的优点就是快了吧。。论好看不如 gitkraken (收费且慢),对中文的支持不如 sourcetree
liudaolunhuibl
2021-12-08 09:45:31 +08:00
idea 自带的大多数情况下够用了
Ginray
2021-12-08 09:48:54 +08:00
说起这个,最新版的 Clion 点击 git push 完全没反应有人遇到过么,用命令行还是可以的。
shanyuhai123
2021-12-08 09:49:20 +08:00
我在使用命令行时主要是配合 zsh 比较爽,tab 补全历史,直接用的话是不如 UI 。
timothyye
2021-12-08 09:49:48 +08:00
tig + git 命令行够了
fjjaylz
2021-12-08 09:49:55 +08:00
@yolee599 toroiseGit 唯一的优势就是任意单文件的历史信息查看,其他的都远不如 SourceTree
cyrivlclth
2021-12-08 10:10:35 +08:00
用了这么多年,会个 push pull commit merge rebase reset 就行了。。。
libook
2021-12-08 10:12:19 +08:00
操作推荐 cli ,分析版本历史和 diff 推荐 gui 。

git 自带 gui 工具,分别是 git gui 和 gitk ,能应付大多使用场景了,其他的就是具体看团队 git 工作流方案是什么,然后再去看是否需要借助一些 cli 或 gui 的工具来提升效率。

如果是推广帖的话请发到推广栏目。
coderluan
2021-12-08 10:16:07 +08:00
没人提 github desktop ,我现在基本就用这个了,功能最全确实是 SourceTree ,所以也导致很笨重,TortoiseGit 我印象中很烂,但是不局限与 git ,同系列的 TortoiseHg 是神器,可惜 Mercurial 自己没落了。
Dvel
2021-12-08 10:16:49 +08:00
用 Rime 大词库的时候发现 Sourcetree 默认不支持大文件 diff ,Fork 支持。
Exin
2021-12-08 10:17:03 +08:00
@xz410236056 source tree 就没中文支持以外优于 fork 的地方了吗?这样的话对大多数人可能 fork 还是最好的选择
Leviathann
2021-12-08 10:18:18 +08:00
idea 的 git+映射几个 ideavim 快捷键,配合它本身自带的全界面输入筛选就很好用了
xz410236056
2021-12-08 10:20:40 +08:00
@Exin #17 souretree 确实没觉得除了中文哪里比 fork 强,sourcetree 颜值不如 fork ,速度也不如 fork ,大项目卡的要死。
P233
2021-12-08 10:21:34 +08:00
没人提 Magit

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/820776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX