已经工作两年半,工作一开始就开始使用git,日常开发基本无压力,偶尔遇到提交冲突,Google一下也可以解决问题。鉴于查漏补缺的读书需求,还是快速但细致地看一遍本书,写下以下读书笔记。
记录的都是一些很琐碎,尤其是之前不知道的知识点。
概念:
octocat:章鱼猫。
群件Groupware,百科
GFM语法,GitHub Flavored Markdown,并不是最官方的markdown,略有出入。
TiDD(Ticket-driven Development)
命令
提高命令输出的可读性,将 color.ui 设置为 auto 可以让命令的输出拥有更高的可
读性。
$ git config --global color.ui auto
“~/.gitconfig”中会增加下面一行。
[color]
ui = auto
只想让程序显示第一行简述信息
git log --pretty=short
以图表形式查看分支
git log --graph
修改上一条提交信息:
git commit --amend
可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游)
git push -u
切换到之前的分支, 类似于cd -
:
git checkout -
在合并特性分支之前,如果发现已提交的内容中有些许拼写错误等,不妨提交一个修改,然后将这个修改包含到前一个提交之中,压缩成一个历史记录。更改历史。将 ” Fix typo”修正的内容与之前一次的提交合并,在历史记录中合并为一次完美的提交。
git rebase -i HEAD~2
小变没必要先执行 git add命令再执行 git commit命令,用 git commit -am 命令来一次完成这两步操作。
–no-ff参数可以在历史记录中明确记录下本次分支合并:
git merge --no-ff feature1
git log 命令只能查看以当前状态为终点的历史日志。 git reflog 命令可以查看当前仓库的操作日志。只要不进行 Git 的 GC(Garbage Collection,垃圾回收),就可以通过日志随意调取近期的历史状态。
UI界面使用
可以借助于GitHub Pages的Octopress 框架来搭建博客;
GitHub Pages的默认branch 是 gh-pages,带来的一个问题就是 master 分支的变更,经常需要去sync到gh-pages。解决方法:通过 setting 设置GitHub Pages模块可以自动创建该项目的网站,选择完master branch之后,master自动变成网站。master所有的提交会自动更新到网站。
在各个页面按下 shift + /
都可以打开键盘快捷键一览表;
在仓库页面试着按下键盘的 t 键,然后输入要找的目录或文件的部分名称。
Raw 可以直接在浏览器中显示该文件的内容。
使用这个 URL,就能通过 HTTPS 协议获取该文件。#L10-15
,则会标记该文件的第10~ 15 行
GitHub对RESTful API的支持非常好。
查看 4-0-stable 分支与 3-2-stable 分支之间的差别:
https://github.com/rails/rails/compare/4-0-stable...3-2-stable
查看 master 分支在最近 7 天内的差别:
https://github.com/rails/rails/compare/master@{7.day.ago}...master
支持的时间类型:day、week、month、year
查看 master 分支 2013 年 1 月 1 日与现在的区别,
https://github.com/rails/rails/compare/master@{2013-01-01}...master
Code Frequency 中显示仓库中代码行数的增加量和删除量;一个代码组织良好的仓库,必定是增加量略大于删除量,因为会删除无用代码,进行重构;
管理 Issue 的系统称为 BTS(Bug Tracking System, BUG 跟踪系统)。当今具有代表性的 BTS 有 Redmine、Trac、Bugzilla等。
Tasklist 语法 A。
本月要做的任务
- 完成图片
- 完成部署工具的设置
- 实现抽签功能
#编号
,会连接到该仓库所对应的 Issue 编号;
git commit -m 提交信息包含以下三个单词的任意一种状态(现在时,单三,过去分词形式):
fix、close、resolve即可将关联的issue close掉。
fix #12
GitHub Flow——以部署为中心的开发模式;流程:令 master 分支时常保持可以部署的状态,随时部署,随时自动化测试,也就没有发布的概念;
不进行 Fork 直接从分支发送 Pull Request:一般说来,在 GitHub 上修改对方的代码时,需要先将仓库 Fork 到本地,然后再修改代码,发送 Pull Request。但是,如果用户对该仓库有编辑权限,则可以直接创建分支,从分支发送 Pull Request。
将特定的 Issue 转换为 Pull Request,以issue Id编号标志;
pr的地址URL类似这样:
https://github.com/用户名/仓库名/pull/28
以diff 或者patch文件的形式查看pr:
https://github.com/用户名/仓库名/pull/28.diff
https://github.com/用户名/仓库名/pull/28.patch
选中想引用的评论然后按 R 键;
在评论中输入”:”(冒号)便会启动表情自动补全功能。
Files Changed 标签页中可以查看当前 Pull Request 更改的文件内容以及前后差别。默认情况下系统会将空格的不同也高亮显示,所以在空格有改动的情况下会难以阅读,在 URL 的末尾添加”?w=1″就可以不显示空格的差别。
github不仅支持文本文件的diff查看,也支持图片文件的查看;
可以通过提交日志的 Image View Mode Demo 来体验操作。
2-up 可以同时显示一张旧图片和一张新图片,从而完成对比;
Swipe 可以在分界线左右两侧分别显示旧图片和新图片;
Onion Skin 能够将新旧两张图片重叠放置,分阶段从旧图片慢慢过渡至新图片,用户可以自由调节过渡比例;
Difference 能够直接抽出两张图片不一样的部分进行比较。
工具
hub,基于Git,完全兼容git,封装git的命令行,辅助用户使用GitHub;安装过程略;
Mac两款命令行安装工具:Homebrew、MacPorts;
使用 hub 命令的最佳实践就是将相应 git 设置成 hub 的别名,hub 命令可以完成 git 命令的所有操作,不会影响 git 命令原本的功能。
Travis CI,类似于jenkins;Travis CI 专门提供 Travis WebLint 用于检测 .travis.yml
文件是否存在问题;
[![Build Status](https://secure.travis-ci.org/用户名/仓库名.png
)](http://travis-ci.org/用户名/仓库名)
Coveralls,代码覆盖率检测服务,配置文件是.coveralls.yml
;
Gemnasium 服务可以查询 GitHub 仓库中软件正在使用的 RubyGems 或 npm(Node Package Manager,包管理器),让开发者了解自己是否正在使用最新版本进行开发;
Capistrano,部署工具;
账户管理可以与 LDAP/CAS 集成;
实际上Subversion 也可以使用 GitHub,即可以将 GitHub的仓库作为 Subversion仓库使用:
svn checkout https://github.com/ 用户名 / 仓库名
GitHub的备选项:GitBucket、GitLab、Gitorious、RhodeCode
Gist使用JavaScript 编写的 Ace 编辑器。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142360.html