如何用Git为Rubyonrails提交修改
最近,Git非常的”火”,很大原因是Rubyonrails改用Git作为版本控制系统了。关于是什么Git及如何使用在这里我就不介绍了。总之理解了它的理念以后,使用上甚至比SVN简单。
下面是我翻译的一篇文章,关于为用GitRubyonrails做贡献的最佳实践。现在,因为自己业余时间里正用Rails写一些东西,期间似乎发现了一个Rails不大不小的Bug,想试着自己改改,然后提交上去。苦于不知道具体如何为开源项目提交代码,因此找到这篇文章翻译过来, 留作参考!
———————————————————-
Ruby on Rails现在使用Git了。这对于像我这样的Git迷来说是好消息。对于那些稍微晚一些参加进来为Rails做贡献的核心贡献者们,我特意为你们写了一个简单的技巧列表。虽然这不能替代使用Git为Rails做贡献的完全教程,但也许是个小小的补充。
首先,你应该设置一个真实的名字和email,默认情况下,Git基于你的登录信息和主机名(这几乎可以确定是个错误)选择一个由GECOS data产生的默认用户名和email(这倒是完全正确的)。这里,最佳实践要求你使用真实的名字和email,而不是你的登录信息或IRC,或者其他你拥有其他别名什么的。这些字段将永久的保存在版本历史记录里面,所以要确定你写的正确。
- $ git config --global user.name "Tim Pope"
- $ git config --global user.email "foo@gmail.com"
设置的同时,有可能你也想为命令加上颜色:
- $ git config --global color.diff auto
- $ git config --global color.status auto
- $ git config --global color.branch auto
- $ git config --global color.interactive auto
虽然Git允许你提交任何注释。但是,坚持用最佳实践去写log会让事情变得更简单。下面是一个提交Model的注释:
尽量简短的描述你的修改(50个字符或更少)
如果有必要,越具体的描述越好。每一行大约72个字符左右。在许多情况下,第一行作为email的标题,余下的部分是正文。尽量不要在总结里加入空行(除非是省略整个正文的情况)。像rebase这样的工具可能造成混乱,如果你运行它两次。
- 更多的段落要跟在一些空行以后,或者用提示符(bullet point)。
- 一般情况下用短横线或星号,后面跟一个空格。段落之间用几个空行,或者其他的方式。
- 要使用缩进。
当提交到Rails核心代码库的时候,你可能还需要进一步充实上面所说的过程。那么,可以提供一个URL显示你的修改在哪里可以被找到。或者用下面的命令产生一个文件。这个文件可以被用来重新显示你本地的修改历史。想查看你的修改的人只需使用git am命令就可以得到它。
- $ git checkout my_funky_branch
- $ git rebase origin/master
- $ git format-patch --stdout origin/master.. > my_funky_patches
这有一个关于如何保持最新状态的提示:下载最新的更新的时候,使用git pull命令去加上–rebase参数,即git pull –rebase,而不用合并提交(merge commit)去弄乱历史信息。这样能让你的修改显示在最新的更改记录里(latest upstream)。但有一点要注意,如果你已经在另外一个版本库里提交了修改,就不要使用这个方法了。因为这样做的话,会使那些已经下载完原来的那些更新的人(的代码)产生问题。
原文: Best Practices for Contributing to Rails with Git

