- 主题:git算不算典型的shit山项目?
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是没有丢,但你能在改动历史中看到吗?
【 在 DoorWay (DoorWay) 的大作中提到: 】
: 29楼我真诚问了俩问题,可否解答下:
: “我特么就是同步一下仓库,怎么还把我的当前源代码给改了” -- 你说的那个软件,是如何维持的? 比如如果本地有修改,分commit / 没commit两种状态。怎么做到不改本地源码的。
: 还有游走版本时,会丢reflog吗?我一直不会丢呢,都是非常放心的reset --hard. 你这搞得我犹豫了。
: ...................
--
FROM 120.244.225.*
这楼里边就有用git reset的呢。再说你到网上搜一下 git 浏览历史版本, 你看有几个网页不是讲 git reset的?
我自己当然用git checkout,但那也是踩坑后才研究出来的。
【 在 SlO (S10) 的大作中提到: 】
: 问一下,你用reset做什么?就是说什么场景下用到reset?
: 我几乎从来没有用过这个命令。
: 我最常用的是checkout rebase fetch pull push status log。
: ...................
--
FROM 120.244.225.*
这不,又来一个
【 在 galaxy123 @ [Programming] 的大作中提到: 】
:
: 不用fetch是因为他没啥用,用不到他。
:
: 【 在 hyperLee 的大作中提到: 】
: : 我当然知道fetch,但是你看网上文档有一个提fetch的吗?
#发自zSMTH@RVL-AL09
--
FROM 221.222.20.*
这个功能我先不说了,鸡肋
【 在 chaobill 的大作中提到: 】
:
: git 还有个 stash changes
: 【 在 hyperLee (醉里挑灯看剑) 的大作中提到: 】
: : 1 mercurial中, 和git一样是区分working tree和repo的。repo中就是历史版本的“数据库”, mercurial中你要是pull的话, 只是拉去对方的repo,而当前working tree根本不涉及, 所以无论你working tree处于什么状态, 都所谓。
: : 但是你要将repo中的某个版本刷新到working tree中,这时候mercurial会提醒你,如果Work tree中有改动。 这时候你可以有各种选择,比如强制刷新,比如shelve(把改动暂存起来,刷新后有必要的话手动在恢复出来)或者放弃等。重要的是,所有的选择产生的结果都符合你的直?
#发自zSMTH@RVL-AL09
--
FROM 221.222.20.*
直接commit不行啊?下次继续写完commit,然后两个commit压缩rebase一下不就完了。
【 在 xiaoju @ [Programming] 的大作中提到: 】
:
: 有的时候你刚写了个开头,有人叫你帮看看他的branch
:
: 【 在 hyperLee (醉里挑灯看剑) 的大作中提到: 】
: : 这个功能我先不说了,鸡肋
#发自zSMTH@RVL-AL09
--
FROM 221.222.20.*
然后外星人说,你的说明书上只有r档。地球人窃喜,终于坑了一片人。
话说,直接打git,出现的短命令列表你自己不看吗?checkout在里边吗?reset有没有?
自己看看不就知道了。
【 在 csyw0731 的大作中提到: 】
:
: 话说地球人终于跟外星人联系上了。地球人决定送给外星人一辆汽车。担心外星人不知道怎么开,就把一本说明书一同送过去。外星人很聪明,虽然没见过地球人开车,但是一边仔细翻阅说明书,一边鼓捣汽车。不到几天居然就开起来了。外星人的小伙伴们相互学习,都学会了开车,甚至出了几个赛车高手。
:
: 这一日,外星人又跟地球人联系上了。外星人夸奖地球人送的汽车好,开起来平稳,就是有一点不好,开车的时候脖子总是要扭过去,开几个钟头,脖子都快扭断了。地球人细问之下才知道外星人开车都挂在“R”档上。地球人好心说不要用“R”档上。外星人便涨红了脸,额上的青筋条条绽出,争辩道“你们说明书头几页明明说有R档的,为什么不能用R档?我周围的外星人赛车高手都用R档开车的,他们说用R档开车,不仅速度合适,而且还锻炼身体,他们几十年的颈椎病都治好了”之类的,引得众人都哄笑起来,版上充满了快活的空气。
:
#发自zSMTH@RVL-AL09
--
FROM 124.64.18.*
你要来喷也得看个几页在来说
【 在 nikezhang @ [Programming] 的大作中提到: 】
:
: 设计思路不一样,本来git的历史就是一个个commit组成的链子,你reset到一个历史版本了,之后的commit你准备怎么办?还有没事你reset干嘛,想看历史版本直接获取那个版本的文件就行了,根本用不到reset,你还是没有搞清楚什么情况用什么命令
:
: 【 在 hyperLee (醉里挑灯看剑) 的大作中提到: 】
: : 是的, 对比之下, mercurial就好学多了,主要是mercurial的概念清晰啊。
#发自zSMTH@RVL-AL09
--
FROM 120.244.225.*
git还成神了?还是一神?
早于git的svn,cvs哪一个不是被广泛使用?人家只是集中式管理,可没说搞出这么多概念不清的设计
【 在 zeus2615 的大作中提到: 】
:
: 恕我直言,用git用不明白的,都是先用了其他vcs
: 在我看来git除了stage不太符合外行人的直觉,其他都很直接。至于说功能,一般人根本用不到那么多功能,常用的git指令中,单人只需要用少于10个,多人合作也不超过20个
: 【 在 hyperLee (醉里挑灯看剑) 的大作中提到: 】
: : 今天看checkout, branch, switch功能, 都震惊了, 分支和commit的关系难道不应该在第一步就设计好吗? 到了2.23 才觉得checkout功能承载太多,于是分裂出两个新的命令。
#发自zSMTH@RVL-AL09
--
FROM 61.148.243.*
我来回答你,git,mercurial 都是基于差分的系统,而空文件夹没法做差分。
【 在 nikezhang 的大作中提到: 】
:
: 这个确实是个问题,不知道为啥不实现
:
: 【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: : 空文件夹到现在还不被支持
#发自zSMTH@RVL-AL09
--
FROM 61.148.243.*
rebase可是git社团推荐的做法,mercurial也推荐,因为可以保持提交历史线性化。
你不用rebase,就得用merge,merge后历史里边一团浆糊,除了自己觉得壮观有成就感,其他人看着根本不想往回翻。
【 在 nikezhang 的大作中提到: 】
:
: 我rebase都很少用,除非是给开源项目提交代码
:
: 【 在 SlO (S10) 的大作中提到: 】
: : 问一下,你用reset做什么?就是说什么场景下用到reset?
#发自zSMTH@RVL-AL09
--
FROM 61.148.243.*