1
zeyexe 2014-02-11 03:58:48 +08:00
恕我问句题外话,你用什么工具画的图?
|
2
vibbow 2014-02-11 05:38:13 +08:00
直接用SourceTree,基本一条git命令都不会...
|
3
wwqgtxx 2014-02-11 07:28:12 +08:00 via Android
简单命令用命令行,复杂的用git gui
常用的直接写进批处理文件 我就是这么干的 |
4
alexrezit 2014-02-11 07:29:13 +08:00 via iPhone
为什么质疑实用价值?
|
5
FrankFang128 2014-02-11 08:38:36 +08:00 via Android
当然可以略过。
|
6
hkongm 2014-02-11 08:44:17 +08:00
2楼真理!同样用ST中
|
7
jianghu52 2014-02-11 08:46:27 +08:00
git svn这样的东西,我都是现用现查的,最常用的也就那么不到10个命令,一个版本工具,还准备上升到什么地步,有这功夫提升代码质量多好。多想想怎么重构代码是真的。
|
8
est 2014-02-11 08:56:37 +08:00 1
> commit”“把一个commit拆分成两个commit”,这些功能有什么实用价值吗?能不能略过。。。
有的。本地分支可能比较混乱,但是大规模项目,你需要把revision弄得漂亮一点。不要到处都是typo, fix, update这种口水commit。可能越下游颗粒度越细,越到上游就是一个完整功能+测试一个commit了。 还有这种模型: 一个大型项目,多个开发者的commit到一个功能模块的repo,然后功能模块作为单一contributor一次性提交到全局mainline。 |
9
FatGhosta 2014-02-11 09:48:24 +08:00 1
有时候你一次commit,提交了两个功能就需要合并一个。或者多次提交只实现了一个功能,那就需要合成一个。
这种提交利于审核,以及必要时候的cherrypick |
10
lingyired 2014-02-11 09:58:11 +08:00
该图已被屏蔽- -
|
14
oldcai 2014-02-11 11:41:15 +08:00
|
16
kneep 2014-02-11 18:19:04 +08:00 via iPhone 1
非常实用,这正是svn之类的工具缺的。
一个好的commit,必须同时具有以下两个特征: 1. 一个commit只解决一个问题 2. 一个commit包含解决这个问题需要的所有修改 |
17
kneep 2014-02-11 18:24:43 +08:00 via iPhone 1
再说一下为什么要这么做:
1. 逻辑清晰,赏心悦目,也方便patch的展示,传递 2. 便于回退查找问题,你可以看看git bisect是干什么的 3. 便于持续集成,自动化测试,达到这样的效果:一个commit进去,一份自动化测试报告出来 |
18
jason52 2014-02-11 21:23:20 +08:00
OmniGraffle好啊 pro git里面的图也是OmniGraffle画的。windows下面没有类似工具呀。。
|
19
blacktulip 2014-02-12 03:01:46 +08:00
@jason52 Microsoft Visio
|
20
lightening 2014-02-12 03:33:39 +08:00 3
实用价值还是比较大的。
由于我们的项目有很多 branch,我们经常需要 cherry-pick 一个分支的 commits 到另一个分支。这种情况下,每次提交时我们必须做到 atomic commit,每个 commit 仅包含一个功能。这时候拆解就很重要。 另外,我们不提倡在代码中写注释。所有要评论的东西统一放在 git 的 commit message 里(第二行可以写很多)。在别人不理解你的代码时,blame 一下就知道你当时做这个修改是为了什么。因此,commit 的组织就显得尤其重要。这样做的好处是防止有人更新了代码却又忘了更新注释,导致注释和代码不匹配的情况。 |
21
bcxx 2014-02-12 08:31:09 +08:00
@lightening commit 的时候才写 comment 会不会出事的啊……例如忘记了一些很细微的细节没注释上去这样
|
22
4gShell 2014-02-12 09:16:43 +08:00
看一百遍,不如动手做一遍。
|
23
hitsmaxft 2014-02-12 12:21:19 +08:00
命令嘛, 只有派上用场才知道价值
很多git维护命令在对代码提交有严格规定的场景才常用,可以只了解一下。 大部分人也就是当高级svn用 最重要就是实践,无他 |
24
arbipher OP |
25
housne 2014-02-12 13:11:46 +08:00
- - 问个问题,在git push 的时候发现自己错提交了一个文件,刚好这个文件有点大(我才不会告诉你是小视频), push 得好长时间,我 ctrl + c 取消了 push, 这时候要怎么删除这文件 ? 使用 git rm --cache file ?
|
26
lsmgeb89 2014-02-12 17:18:01 +08:00
楼主,你现在的项目是用 git 的嘛?如果不是的话,有个概念就好了。到要用的时候,你自然会把他们搞的很清楚。
|
27
arbipher OP @lsmgeb89 是。之前自己的小项目简单的试过,但是commit树都是线型的……从github上看的开源项目也只到git clone 这一步。
这次是要和人协作了,用的就是git。 |
28
lightening 2014-02-12 18:46:54 +08:00
@bcxx 所以要频繁 commit,然后再 push 前 rebase 整理一下。
|