Git和GitHub都是非常强大的工具。即使您已经使用它们很长时间,您也很有可能不了解每个细节。我整理了10个Git和GitHub可能会提高您日常工作效率的常见技巧。GitHub快捷键:t和w在你的源码浏览页面,按t快速进入模糊文件名搜索模式:在你的仓库首页,按w快速进行分支过滤:在GitHub任意页面,按?显示当前页面可用快捷方式:忽略空格:?w=1添加?w=1到任何diffURL以缩进:按范围过滤提交:master@{time}..master您可以通过以下方式创建比较页面使用URLgithub.com/user/repo/compare/{range}。范围可以是两个SHA,例如sha1...sha2或两个分支名称,例如master...my-branch。范围还智能地支持使用时间作为焦点。您可以通过master@{1.day.ago}…master过滤昨天的提交。例如:链接,https://github.com/rails/rails/compare/master@{1.day.ago}...master显示自昨天以来Rails项目中的所有提交和更改:按作者过滤提交:?author=github_handle您可以通过将?author=github_handle添加到比较页面URL来按作者过滤提交。例如:链接https://github.com/dynjs/dynjs/commits/master?author=jingweno显示了jingweno对Dynjs的提交记录:.diff和.patch添加在comparepage,mergerequestpage或url后评论页面。diffor.patch,可以得到diff或者patch的文本格式。例如:链接https://github.com/rails/rails/compare/master@{1.day.ago}...master.patch显示了从昨天开始Rails项目的所有commit记录和变化。文本格式:邮件回复你可以在收到的GitHub通知邮件中直接评论,无需在网站页面评论。GitHub会正确处理你的评论:链接行在文件显示页面,点击一行或按SHIFT选择多行,URL会相应变化。如果您想与队友共享一段代码,这非常方便:关注用户在合并请求、问题或任何评论中提及用户将使用户关注所有后续通知:合并请求中的自动链接、问题,或中的任何评论,sha和问题代码(例如:#1)将自动链接。另外,你也可以链接其他仓库的sha或questioncode,格式为:user/repo@sha1oruser/repo#1。下面是一个在评论中通过sha自动链接的例子:hubHub是GitHub的命令行。它提供了Git和Github之间的集成。最有用的命令之一是通过在命令行中键入hubpull-request来创建拉取请求。详见readme.gitgitlog-pFILE查看README.md的修改历史,例如:>gitlog-pREADME.mdgitlog-S'PATTERN'例如搜索匹配stupid的修改历史:>gitlog-S'stupid'gitadd-p交互式保存和取消保存更改,使用:>gitadd-pgitrm--cachedFILE该命令只删除远程文件,例如:>gitrm--cacheddatabase.yml删除database.yml保存的记录,不影响本地文件。这对于在不影响本地文件的情况下删除已推送的忽略文件记录非常方便。gitlog..BRANCH该命令返回除HEAD之外的分支的提交记录。如果你在一个功能分支上,输入:>gitlog..master返回整个master分支的历史,包括尚未合并到当前分支的提交。gitbranch--merged&gitbranch--no-merged该命令返回合并分支列表或未合并分支列表。此命令对于预合并检查非常有用。例如,在功能分支上,键入>gitbranch--no-merged返回未合并到该分支的分支列表。gitbranch--containsSHA返回包含指定sha的分支列表。例如:>gitbranch--contains2f8e2b显示包含提交2f832b的所有分支。此命令对于验证gitcherry-pick是否已完成非常有帮助。gitstatus-s返回一个简单版本的gitstatus。我将此命令设置为默认为gitstatus以减少噪音。gitreflog向您显示您在本地所做的事情的列表。gitshortlog-sn显示提交记录的贡献者列表。与GitHub的贡献者列表相同。总结Git是一个设计良好的工具。知道它会直接让你更有效率,成为更有才华的程序员。另一方面,GitHub以Git为基础,提供方便的团队合作功能。能够使用GitHub也会提高你的日常工作效率。为了更好的加深你对Git和Github的理解,推荐一些资料:ProGit,最好的Git指南AdvancedGitGitandGitHubSecrets
