最近一年多来养成的一个习惯,就是每次 commit 之前,一定会在 GitX 里把要 stage 的更改再看一遍,而且 GitX 有一个好功能就是,你可以不用 stage 整个文件,你可以只 stage 某个函数中更改了的一个部分。
如果你还在用 git commit -a 的话,或许你可以考虑一下让自己的 commit 冲动慢一点,这样对代码质量会有好处。
如果你还在用 git commit -a 的话,或许你可以考虑一下让自己的 commit 冲动慢一点,这样对代码质量会有好处。

1 kaichen PRO 如果熟悉在Command line使用Git,不要使用`-m`,而是在Commit的时候加上`-v`,这样在编辑Commit Message时先往下走,把代码再认真看一遍,看好了再写Commit Message。 这是我一直以来的习惯。 |
2 bitbegin Jul 2, 2014 GitX是啥? |
4 isy Jul 2, 2014 用 Vim 的话配合 vim-fugitive 插件也挺好用的, :Gdiff 对比很方便。 另外 git commit -a 是个很坏的习惯 |
5 yangruixuan Jul 2, 2014 我是处女座我骄傲 |
6 TankyWoo Jul 2, 2014 @kaichen 赞成,`-m`最好不要加,除非是简短的说明;还有就是没有特殊理由,不要使用`git add *`,`git add .`,也不要直接用`git commit -a`等。 主要还是最好再次确认下,防止比如把一些不需要的如隐藏文件等也给add提交进去了。 |
8 ispinfx Jul 2, 2014 via iPad Magit帮到你 |
9 leofml Jul 2, 2014 所以我一般用 SourceTree |
10 h2ero Jul 2, 2014 一般都是用的git diff --cached看下, 看来以后要养成git ci -v的习惯。 |
11 yangqi Jul 2, 2014 这就是用GUI的好处,每次commit之前都可以很自然的review, 也便于更好的写comment |
12 powerfj Jul 2, 2014 提交之前检查代码是非常必要的,经常看别人一不小心带出去不该带出去的代码的..每次看别人烟都不眨一下全量提交我就在为他捏把汗.. |
13 Phariel Jul 2, 2014 via iPad sourcetree一样,神器。 |
14 ChiangDi Jul 2, 2014 JB家 的 IDE 都是 commit 的时候可以看的,关键是看到不对还可以直接改,简直神奇 |
15 xujialiang Jul 2, 2014 虽然公司还在用svn。。。。。。不过我commit之前还是都看一遍。。。。。。。。xcode逼着我看啊~~~~~~~~~~~~~~~不看不舒服。。。。 |
16 akfish Jul 2, 2014 Commit前review是必须的,我个人经常用pre-commit hook执行build和test,测试不通过直接就不能commit。 |
17 passluo Jul 2, 2014 via Android 所以 SourceTree 的交互蛮好的,鼓励大家 commit 前先浏览一下自己的更改。 |
18 yxjxx Jul 2, 2014 我觉得sourcetree比gitx更好用些,也有stage lines功能,还可以查看uncommitted changes,功能更丰富些. |
19 yangqi Jul 2, 2014 sourcetree +1, 同时支持git和mercurial |
20 lyragosa Jul 2, 2014 看来v2ex只有我一个人直接在线上改服务器代码QAQ |
21 jianzong Jul 3, 2014 一般直接git diff确认一下,刚刚才发现-v 是个好东西 |
22 mcfog Jul 3, 2014 |
23 hustlzp Jul 3, 2014 在用sourcetree看。 |
24 gancl Jul 3, 2014 sourcetree +1 |
25 SoloCompany Jul 3, 2014 直接在 JetBrains 里面提交代码就不会忘记自己 Review 了 |
26 rainysia Jul 3, 2014 发现没linux下用户吗? 给抛弃了. 目前review用的qgit, 有时也用gitg 和Giggle. |
27 AstroProfundis Jul 3, 2014 |
28 jprovim Jul 3, 2014 In zsh, use gca instead. or type it yourself `git commit -v -a` |
29 amoblin Jul 3, 2014 我是这样做的: 1. git stash 2. git pull 3. git stash pop(这里可能要处理冲突) 4. git status 5. git add -u 6. git diff --cached 7. git commit(这里我设置了2个git hooks:pre-commit和prepare-commit-msg。前者会做一些自动更新文件的工作,后者会自动添加一些信息到commit里去) 8. git log 确认一下 9. 没问题就 git push 附上2个git hooks的链接: https://github.com/amoblin/MyDotFiles/tree/master/git-hooks |
30 softempire Jul 3, 2014 commit 之前自己review是我们强制要求的 |
31 niko Jul 3, 2014 都会review,嗯~ |
32 fsw90628 Jul 3, 2014 看了 WWDC,苹果的团队会在 commit 之前运行一遍 performance 和 correctness 的测试。 |
33 railgun Jul 3, 2014 不review就敢提交?哪来的勇气? |
34 wy315700 Jul 3, 2014 git add 之前用 git diff查看 |
35 wecoders Jul 3, 2014 SourceTree+1 好用,不贵 |
36 duzhe0 Jul 3, 2014 一直都是先svn diff 再svn ci 的 |
37 ijse Jul 3, 2014 一般用git diff windows下内置了一个小工具 gitk, 还可以看提交树, 很不错~~ 另外,可以通过配置git hook实现一些commit之前要做的事,比如跑单元测试,检查代码格式 什么的。。 |
38 bigporker Jul 3, 2014 这个不是标配么 每次commit之前,自己review一遍代码,再让同事帮忙review一遍代码是个好习惯 |
40 ceyes Jul 3, 2014 commit 只要没有push上去就可以随便修改, rebase, reset…… 所以我更倾向于在push 之前review 这个commit, 或发patch 让大家review。 |
41 Bluecoda Jul 3, 2014 这么多SourceTree,用tig的有点另类啊。有没有朋友介绍一下SourceTree比tig优势在哪里? |
42 chshouyu Jul 3, 2014 可以试试git add -p 可以精细的控制要提交的内容 y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk nor any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk nor any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help GUI程序当然更好用一点 |
43 lazyphp Jul 3, 2014 git commit -m 之前必须确认好 没搞错。 在这过程之前的所有操作都可以快速还原的。。。 |
44 rannnn Jul 3, 2014 公司里面的ci build一次要半个小时。。。每次commit都是胆颤心惊的看了一遍又一遍生怕搞挂了。 |
45 skywalker Jul 3, 2014 magit +1 |
46 hutushen222 Jul 3, 2014 SourceTree +1 |
47 pepsin Jul 3, 2014 都是用 Github 那个客户端,每次都是通读一遍变更才出去。这不是基本素养么。 |
48 suprod Jul 3, 2014 via iPhone Tigtigtigtigtigtigtigtig |
49 est Jul 3, 2014 commit错了revert 然后 reset呗。 |
50 reorx Jul 3, 2014 没错,自从用了 GitX 之后,review 和 commit 都变得更清晰了,即便一次写很多代码,也可以非常方便地拆分成多个 commit 了。个人感觉比 SourceTree 好用,btw,我用的是这个 fork: http://rowanj.github.io/gitx/ |
51 qichunren Jul 3, 2014 GitX可以选中文件中的行来提交,非常好用。 |
52 breeswish Jul 3, 2014 自从有了 SourceTree, 其他方式再也不用了.. 而且还是免费的 |
54 finian Jul 3, 2014 SourceTree +1 |
55 toctan Jul 3, 2014 via iPhone magit 秒了所有… |
56 chemzqm Jul 3, 2014 alias gca="git commit -a -v" 一般都是gca,gitx看各种分支线挺方便 |
57 taobeier Jul 3, 2014 git commit -a 不是什么好习惯 |
58 66beta Jul 3, 2014 Github客户端可以当第三方用 |
59 jianghu52 Jul 3, 2014 看了一圈,没一个人用TortoiseGit ,我是不是太low了?但是我确实觉得小乌龟很好用啊。尤其是还可以有中文版。 |
60 bigporker Jul 3, 2014 |
61 fo2w Jul 3, 2014 压根不是习惯问题, 基本素养 |
62 terrortang Jul 3, 2014 @ispinfx 同magit |
63 sd4399340 Jul 3, 2014 一般sourcetree里会看一下,现在也不用-m了,commit写的越详细越好 |
64 sd4399340 Jul 3, 2014 还有个好处就是,git commit打开vim以后,第一行写简短的,你长度太长了字体会变灰提示,中间空一行,后面写详细的,这样的话github上可以识别的,而且你发pull request的话如果只有一个commit,会自动把简短的当标题,详细的当内容,非常方便! |
65 maga Jul 3, 2014 via iPhone 一直用终端的git,原来还有gitx好东西 |
66 lijinma Jul 4, 2014 via Android 没有人用 git gui& 吗? |
67 myrual Jul 4, 2014 用过tortisegit, 也用过xcode自带的git。 sourcetree在mac上用过,也在windows上用过。 只有sourcetree才能真正的让我觉得顺手。 任何时候都可以反悔,任何一块都可以反悔,任何一行都可以反悔。 唯一的问题就是windows上面的版本很卡,但是为了sourcetree,我也只能忍了。 @Bluecoda |
68 billlee Jul 4, 2014 每次的提交流程是 add -i / diff --cached / commit |
69 iugo Jul 6, 2014 每次「说话」之前再自己「想一想」是个好习惯. |
70 dcoder May 20, 2019 都是在自己的 dev branch 上 commit 吧, 可以 commit 完了之后, 再 review 也行啊, 然后再 merge to stage/master branch. |