一、概述
由于项目需要,我近期较为频繁的使用 Github 对代码进行管理。
非常险的一次是,在进行某个新功能的开发时,进行了多处的修改后,我突然又不想要这个新功能了。可怕的是,这些修改中,有的直接作用与新特性的开发,而有的仅仅只是 bug 的修复。这导致简单的回退无法达到去除新功能开发的目的。
二、功能点
2.1 专一
做人做事要专一,做开发也要专一!
每条分支,每个提交只做一件事!
分支专注于某个大模块的开发(某个功能特性、某次 hotFix
等)
2.2 特殊分支特殊处理
master
、release
等是特殊分支,千万不要在这写分支上对代码进行修改。
master
承担着整个项目源代码的管理职能;release
则承担发布的管理责任。
开发在 develop
分支上进行;bug 的修复则应发生在 bugFix
分支上,bugFix
可以根据 bug 的标记产生不同的分支名。
三、常用的命令
3.1 tag
http://caibaojian.com/github-create-tag.html
3.1.1 查看 tag
列出所有 tag:
这样列出的 tag 是按字母排序的,和创建时间没关系。如果只是想查看某些 tag 的话,可以加限定:
这样就只会列出 1.x
的版本。
3.1.2 创建 tag
创建轻量级 tag:
这样创建的 tag 没有附带其他信息,与之相应的是带信息的 tag:
-m
后面带的就是注释信息,这样在日后查看的时候会很有用,这种是普通 tag,还有一种有签名的 tag:
前提是你有 GPG 私钥,把上面的 a
换成 s
就行了。除了可以为当前的进度添加 tag ,我们还可以为以前的 commit 添加 tag:
3.1.3 删除 tag
很简单,知道 tag 名称后:
3.1.4 验证 tag
如果你有 GPG 私钥的话就可以验证 tag:
3.1.5 共享 tag
我们在执行 git push
的时候,tag 是不会上传到服务器的,比如现在的 github,创建 tag 后 git push``,在 github 网页上是看不到 tag 的,为了共享这些 tag,你必须这样:
3.2 push
git push
是十分常见的一个命令。
3.2.2 指定 push 的 account 和 password
Local 机同时进行着多个项目的开发工作,麻烦的是,这些项目关联的账户都不尽相同,此时,可以指定某次 push 的 account 和 password。
3.2.3 避免每次 push 要输入 account 和 password
一种方法是:
http://blog.csdn.net/stepbystepto/article/details/52772326
修改代码根目录的隐藏配置文件 .Git/config
文件
四、常见问题
4.1 为什么 Github profile 没有记录你的 Contributions
https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/
- fork 的提交不会被记录
- 非
master
分支上的提交不会被记录 - commits 使用的邮箱地址不与你的账号关联
- …
中文详细内容见 http://blog.csdn.net/u010184533/article/details/51683812