- 主题:git算不算典型的shit山项目?
今天看checkout, branch, switch功能, 都震惊了, 分支和commit的关系难道不应该在第一步就设计好吗? 到了2.23 才觉得checkout功能承载太多,于是分裂出两个新的命令。
关键branch和switch功能还是重叠的。
git的发展过程, 很明显就是凑合,再凑合, 然后改改, 继续凑合,结果文档虽然庞杂,在github的加持下拥趸也不少, 但功能设计就是一笔糊涂账。
对比mercurial, 人家从一开始就设计的好好的,到现在这些概念也没有变化过。版本是版本,分支是分支,拉取就是拉取, 推送就是推送。
git的pull还附带合并,我特么就是同步一下仓库,怎么还把我的当前源代码给改了,当初发现这一点的时候心里一万头马儿奔过.
还有版本游走, 网上一堆git教程说用reset,这个应该能坑不少人. 要是reflog也被删, 基本就哭去吧. mercurial的版本游走就让人很放心,想走到哪个版本到那个版本,根本不用担心说回到某个历史版本后, 此后的提交全被删的问题。
软件产品这东西,不是说某个顶级coder搞出来的就nb,产品力跟code force根本是两个维度的东西,但是产品需要的, 首先确实就是产品力.
难怪我周围一堆高手, 都很鄙视git. 用也是捏着鼻子用.
--
FROM 120.244.224.*
我当然知道fetch,但是你看网上文档有一个提fetch的吗?
我周围一堆git“高手”,反复跟我说, 没有人用fetch。就连git自己的粉丝都用不对,还有什么好说的。 用个命令还需要跟研读经书一样的话,这个东西大概率会被人误解, 然后误用。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 同步下仓库用git fetch。连这个都没用对还是别急着发表评论了
--
FROM 120.244.224.*
是的, 对比之下, mercurial就好学多了,主要是mercurial的概念清晰啊。
有branch, 还有head. 非常符合管理的思路.
最关键的是随意切换到某个历史版本, 没有任何心里负担. 没有git reset这种坑人的操作
.
【 在 ilylx (ilylx) 的大作中提到: 】
: 即使有客户端,git的学习成本也高的不是一点半点,对比svn
: 最近教一个新手使用git有感。。
--
FROM 120.244.224.*
刚才又看了一下git命令,连checkout居然不在默认显示的短命令中,而reset却在。我差,这是故意埋坑。
nb的coder和nb的产品真没什么太多关系。
【 在 pcal 的大作中提到: 】
:
: git的确挺乱的,有些还得理解底层原理才能理解命令本身
: linus的名气和github成就了git今天的地位。
: 【 在 hyperLee 的大作中提到: 】
: : 今天看checkout, branch, switch功能, 都震惊了, 分支和commit的关系难道不应该在第一步就设计好吗? 到了2.23 才觉得checkout功能承载太多,于是分裂出两个新的命令。
#发自zSMTH@RVL-AL09
--
FROM 120.244.224.*
我选择概念更清晰,使用更简单,功能却同等强大的mecurial,而且还有个非常正经的界面tortoisehg。
有人说了git也有很多界面,但真的全都不配给tortoisehg提鞋。
【 在 bjtuJoran 的大作中提到: 】
:
: 小白可以用perforce
: 【 在 xiaoju 的大作中提到: 】
: : 小白可以用teams或者confluence
: :
#发自zSMTH@RVL-AL09
--
FROM 120.244.224.*
vi还是vim?好歹vim还有个思路清晰的教程。一遍下来就差不多就上手用了。
【 在 shocker 的大作中提到: 】
:
: git这玩意儿说不得,就犹如vi这类的东西
: 【 在 hyperLee 的大作中提到: 】
: : 今天看checkout, branch, switch功能, 都震惊了, 分支和commit的关系难道不应该在第一步就设计好吗? 到了2.23 才觉得checkout功能承载太多,于是分裂出两个新的命令。
: : 关键branch和switch功能还是重叠的。
#发自zSMTH@RVL-AL09
--
FROM 120.244.224.*
这个命令就是删reflog的? reflog一删, 那些用reset都要哭死。
【 在 PaoloMaldini (solo con te) 的大作中提到: 】
: 我去年才知道,git项目大了之后还有个功能叫git gc
: 这才震惊。。
--
FROM 120.244.225.*
或许,但我现在mercurial用的很happy, 尤其是线下同步, 秒开http服务搞同步。
不知道git现在开http服务双机同步的功能呢有了没有。
【 在 newre (民工六草) 的大作中提到: 】
: 您最适合用svn和cvs.
: #发自zSMTH@HMA-AL00
--
FROM 120.244.225.*
我连vscode都装vim模式。当然浏览器没有,我没这么变态。
【 在 PaoloMaldini (solo con te) 的大作中提到: 】
: vi很好啊,我每个IDE包括VS能装的都装了vim插件
--
FROM 120.244.225.*
这就是坑点所在。reflog默认不显示,用gui界面除非专门指定显示reflog,也不会显示。
要是什么时候忘了自己的reflog里边还有重要东西,按照提示git gc一下, 那叫一个酸爽。
我要是老板的话, 这个哥们可以准备找下家了。
【 在 ArchLinux (a lightweight and flexible distribution) 的大作中提到: 】
: git 在检测到未引用对象多了的时候就会提示用户可以用 git gc 清理一下。
--
FROM 120.244.225.*