IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    做一个有品位的程序员

    Jiang Xin (worldhello.net@gmail.com)发表于 2015-12-23 00:00:00
    love 0

    能够写出漂亮代码的程序员就是有品味的程序员么?

    还不够。品味来自于每一个细节,有品位的程序员会把每一次提交做小、做好、做对,尽量做到整个开发的过程的无可挑剔,这样才够逼格,才可以称为有品位。

    熟练使用 Git,会让程序员更有品味。

    提交做小

    写小提交就是将问题解耦:“Do one thing and do it well”。开源软件的提交通常都很小,每个提交只修改一个到几个文件,每次只修改几行到几十行。 在你的仓库里执行下面的命令,可以很容易地统计出来每个提交的修改量。

    $ git log --no-merges --pretty="" --shortstat
    

    可是在开发过程中,程序员一旦进入状态,往往才思如泉涌,写出一个大提交。比如我又一次向 Git 贡献代码时, 提交还不算太大,就被 Git 的维护者 Junio 吐槽,要我拆分提交,便于评审:

    TODO
    

    那么如何将提交拆分为若干个小提交呢?

    先以拆分最新的提交为例,可以如下操作:

    1. 重置到上一次提交。

       $ git reset HEAD^
      
    2. 通过补丁块拣选方式选择要提交的修改。

       $ git add -p
      
    3. 修补提交。

       $ git commit --amend
      
    4. 添加剩余的代码修改,并提交。

       $ git add -u
       $ git commit
      

    如果遇到复杂情况,难以通过补丁块拣选(git add -p)的方式修改提交,也可以直接编辑文件,删除不希望此次提交的修改,再执行:

    $ git commit --amend
    

    然后执行下面的命令,还原原始的文件修改,并提交。如下:

    $ git checkout HEAD@{1} -- .
    $ git commit
    

    如果要拆分的是历史提交(如 commit1)而非当前提交,则可以执行交互式变基(git rebase -i), 在需要拆分的提交停下来,执行上面类似的拆分提交操作。然后再执行 git rebase --continue 完成 变基操作。



沪ICP备19023445号-2号
友情链接