- 主题:git算不算典型的shit山项目?
“我特么就是同步一下仓库,怎么还把我的当前源代码给改了” -- 你说的那个软件,是如何维持的? 比如如果本地有修改,分commit / 没commit两种状态。怎么做到不改本地源码的。
还有游走版本时,会丢reflog吗?我一直不会丢呢,都是非常放心的reset --hard. 你这搞得我犹豫了。
【 在 hyperLee 的大作中提到: 】
: 今天看checkout, branch, switch功能, 都震惊了, 分支和commit的关系难道不应该在第一步就设计好吗? 到了2.23 才觉得checkout功能承载太多,于是分裂出两个新的命令。
: 关键branch和switch功能还是重叠的。
: git的发展过程, 很明显就是凑合,再凑合, 然后改改, 继续凑合,结果文档虽然庞杂,在github的加持下拥趸也不少, 但功能设计就是一笔糊涂账。
: ...................
--
FROM 61.185.194.*
29楼我真诚问了俩问题,可否解答下:
“我特么就是同步一下仓库,怎么还把我的当前源代码给改了” -- 你说的那个软件,是如何维持的? 比如如果本地有修改,分commit / 没commit两种状态。怎么做到不改本地源码的。
还有游走版本时,会丢reflog吗?我一直不会丢呢,都是非常放心的reset --hard. 你这搞得我犹豫了。
【 在 spadger 的大作中提到: 】
: 坐等git粉丝喷你…
: 他们会说:你不会用,你不了解底层,你看我怎样,blablabla。然而你摆出来的事实他们都选择无视。
:
: ...................
--
FROM 36.45.14.*
1 repo中的某个版本刷新到working tree,这个刷新就是合并。挺好,显式的动作。
2 reflog没有丢就好。猜测你说的软件,是reset后,show log后,可以看到最远的log,而不是只显示到所在版本这个区别。
有时不是写的代码复杂,是业务本身复杂。你做架构给同事们用时,就会深有体会。包括vim,实际是对“编辑、编码、修改代码”这个业务本身,进行了大量的抽象。至于这种抽象,不掌握也能干活。就像鼠标点点选选。有人用svn或git,怕搞不定,就拷贝一个副本,pull完再拷贝回来。都行。至于抽象质量的高低,就是看能不能通过尽可能少的正交的概念,覆盖所有业务,其次是方便理解。
git项目是不是shit mountain,跟git的使用体验没关系。要看代码本身多少行,写的怎么样,要增加、修改一个功能难不难。
【 在 hyperLee 的大作中提到: 】
: 1 mercurial中, 和git一样是区分working tree和repo的。repo中就是历史版本的“数据库”, mercurial中你要是pull的话, 只是拉去对方的repo,而当前working tree根本不涉及, 所以无论你working tree处于什么状态, 都所谓。
: 但是你要将repo中的某个版本刷新到working tree中,这时候mercurial会提醒你,如果Work tree中有改动。 这时候你可以有各种选择,比如强制刷新,比如shelve(把改动暂存起来,刷新后有必要的话手动在恢复出来)或者放弃等。重要的是,所有的选择产生的结果都符合你的直觉,不会说把你的某个提交搞得隐藏起来,让你都不知道。
: 2 你要是用git checkout的话,没问题;你要是用git reset的话, 你自己看一下log,不就知道效果了?reflog是没有丢,但你能在改动历史中看到吗?
: ...................
--
FROM 61.185.159.*
edit是啥?
vi当年能流行,肯定是终端年代连接服务器的必须,需要“模式”,在同一个终端里运行更多命令。说白了就是GUI不行。
vim后来能流行,除了继承历史遗产,就是对“编辑、编码之编辑”这件事,研究的比较透,很多人为了享受这些便利,就使用了vim,继而全盘接受。另外从长期投资来讲,学vim性价比较高。
——编码之编辑,好比画画,画刷与画布接触是第一段的工作,第二段修改时,更多的端详着画,需要时,改上一两笔,大部分时间画刷是离屏的。写代码只点20%的时间,读(改)代码要占80%的时间。vim的insert模式,是第一阶段,normal模式是第二阶段。
【 在 chaobill 的大作中提到: 】
: vim 这东西,连 edit 都不如,搞不懂怎么流行了那么久
--
FROM 61.185.159.*
任何时候,也不会没得选吧。
你有捏鼻子的功夫,查查文档也解决问题了。比如大家都说的nano。
【 在 spadger 的大作中提到: 】
: 用vi只是因为没得选,捏着鼻子用而已
:
: #发自zSMTH@Note 8 Pro暖手宝
--
FROM 61.185.159.*
Linux下哪个场景下用呢?通过putty/secureCRT连到服务器,改个配置文件?
会用“矛盾”说明还是讲逻辑的,逻辑上讲不用nano,说明nano更难用?
【 在 spadger 的大作中提到: 】
: 会用和觉得难用又不矛盾,win下面就从来不用vi。linux下捏着鼻子用而已。
:
: #发自zSMTH@Note 8 Pro暖手宝
--
FROM 124.114.151.*
说实话,您这是纯装逼。尤其是贴知乎链接的。
【 在 spadger 的大作中提到: 】
:
https://www.zhihu.com/answer/25068499: 版本控制工具的选择和实际的需求联系很紧,比如是否是整个公司一个repository,是否需要复杂的权限管理,是否需要管理大量的二进制文件,对线性历史是否有要求,是否允许修改历史,是否具备扩展性,分布式/分支,是否集成code review还有issue tracker等等...
:
: ...................
--
FROM 36.45.42.*
你可以把我的三条发言一起看看,一直在认真讲道理。
你贴知乎链接的毛病,败露了你的技术水平和作风:自己做不来,但吹水高精尖特别来劲。我打赌,你上条引用的名词自己一个也没用过,甚至根本,就是只知道个名字。拉大旗作虎皮。
【 在 spadger 的大作中提到: 】
: 已经气急败坏了
:
: #发自zSMTH@Note 8 Pro暖手宝
--
FROM 36.45.42.*
1 你肯定知道也能理解worse is better,c语言不完美但胜出就是巨大例子。你只是为了发泄一会情绪,结果在这里越辩越深。如果不知道,搜索下那篇文章。
2 git 项目里语言构成如下,shell有36.9,它怎么可能不是以命令驱动为主?
C
49.9%
Shell
36.9%
Perl
6.0%
Tcl
4.3%
Python
0.9%
Makefile
0.8%
Other
1.2%
3 有的大的项目,历史悠久,又要跨平台,a 要设置非常多环境变量,b 中间有很多自定义代码生成、资源生成过程,这种项目是很难整合到VS里的。写非常复杂的脚本,能输入一条命令就编译,也不错。当然要加上各种参数,因为调试时有各种需求。还是那句话,这种情况存在,不是因为技术复杂性,是因为业务复杂性。没有人抱怨爱因斯坦把相对论写的太难懂,但抱怨git难用的楼里一大堆。因为工作用了一两次,会给人一种错觉,我也能用它!
【 在 hyperLee 的大作中提到: 】
: 没有产品设计观念是贯穿了git相关产品的,git为什么用命令行,因为界面做的实在是烂。
: 你看界面做得好的,谁用命令行。有人闲着去刻意开黑窗口用cl而不是用vs ide?
: 见谁闲着不用qtcreator或vs ide而要自己用命令行编译的?
: ...................
--
FROM 36.45.42.*
你一条我一条,分享与这个话题(git vim 项目管理 版本发布 软件部署 鉴权管理……)相关的案例、技巧、解决的疑难问题。看谁先说不出?
【 在 spadger 的大作中提到: 】
: 打赌赌什么?
:
: #发自zSMTH@Note 8 Pro暖手宝
--
FROM 36.45.42.*