本笔记根据慕课网happypeter老师的讲课内容整理。
版本撤销:
- 撤销一个版本可以用undo,但是此功能只能在版本没有同步之前使用。
- 同步指本地的同步到github网站上。
- 已经发布的版本可以用Revert this commit, 也起到了撤销版本的作用。
- 可以选中一个正确的版 本然后用 Roll Back to this Commit删除这个版本之后的所有的版本。
同步:
- 本地的项目,尽快放到github上,可以防止本地丢失。
- 把项目放到Github上,点击Publish,然后点击Push Repository即可。
- 以后再做的,点击同步按钮就可以同步了。
分支(Branches)操作:
- master分支指向的是目前最新的版本,最新的版本又指向其父版本,依次向下长,形成一根竹子。
- 但是一个仓库之中不一定只有一根竹子,点击Branches下的+号,可以在master下新建分支。
- 开新分支的目的是,我们想基于前面的代码开发一些新的想法,但是又不想污染到master分支上的很重要的代码(master分支一般存可以随时放在服务器上当产品跑的代码)。
- 删除分支:把分支切换到其他的分支上以后,在要删除的分支处点击Delete(同时删除本地和远端的分支),或者点击Unpublish(只删除远端的分支)
- master是仓库的默认分支,默认是不能删除的。可以在Settings中设置默认分支 GitHub学习笔记
合并分支:
第一种:Merge,把两个不同的分支合并到同一个。如把新的想法更新到master分支上。
第二种:rebase 即同一个分支,一个在本地,一个在远端,例如远端的master分支被另一个人更改了,本地的也对master分支做了更改。
- 在代码不冲突的情况下,只要使用同步就可以实现合并。
- 当代码发生冲突的时候,可以找到冲突的地方,Git会有冲突标示符指示出来。此时需要商讨,看怎么修改解决,再进行同步。
GitHub流程:(见 理解GitHub Flow)
流程:创建一个新分支 —> 在新分支上做新版本 —> 开启一个Pull Request(最重要,最核心) —> 讨论和代码审核 —> 合并分支,然后部署
代码的写作开发两种情况:
1. 熟悉的团队之间
- 给队友添加写权限:在Settings —> Collaborators —> 输入密码 —> 搜索队友 —> Add Collaborator
- 发Pull Request: 就是自己在另外一个分支上做了一个版本,现在想项目的主管者从我的分支上拉取代码,到master分支之上。
- Write处,写一些解释性的语言。可以截图。 然后点击Create Pull Request。评论处可以用: 插入表情
2.开源项目的流程
- 加写权限是不现实的。解决办法:在别人的开源代码处先Fork一下。相当于对开源的仓库做一个拷贝,放到自己的名下。
- 在自己的页面处,点击Clone in Desktop,把远端的仓库clone到自己本地机器上。修改,然后同步。
- 在开源的页面上,点击Graphs —> Network 可以看到所有fork并且做了修改的人,并且可以点开看一下fork的人做了什么修改。
- 以自己的身份点击Pull Request —> New pull request —> Create Pull Request
3.快速发Pull Request: 用于小改动的时候。(适用于上面两种情况)
- 在开源页面某个文件下,点击一个笔的编辑按钮,然后做修改,并写留言,然后点击 propose file change。
GitHub Issues: (在官网上Mastering Issues)
在每个项目上,都有三个方法来辅助这个项目:
- GitHub pages来搭建一个项目主页,是一个免费服务。
- Wiki机制,做自己的知识库。
- Issues,事物卡片。当对一个代码有BUG或者想修改,并且已经成型修改好了,可以直接Pull
Request。但是当对这个想法没有成型,需要讨论的时候,就可以用Issues创建事物卡片。
步骤:
- 在项目主页上点击Issues,添加主题和描述。然后在Assignee中设置事物卡片布置给谁去完成。在自己的write中使用@给别人来展开讨论。
- Markdown是一种简单的标记性语言,可以通过简单的标注,最后导成很漂亮的格式。在Write中可以使用。(详细见Mastering Markdown)
- 标题:#h1
- 列表:*first *second。。。
- 回复特定人的问题:>把别人的问题拷贝到write中,也可以选中别人的话,用快捷键R就可以达到相同的效果。然后进行回复。
- 引用写过的内容:在写过的内容出,点击时间处(commented ***ago),得到一个链接,在write中写,这个问题已经讨论过了:链接
- #1,可以直接得到编号为1 的事物卡片。
- Pull Request 是由代码引发的讨论 而Issues是由讨论引发代码
- 针对某个事物卡片做修改,在版本留言最后用 #1,表示这是针对实物卡片1做的修改。如果用 fix
#1表示针对事物卡片1做了修改,并且会关闭这个事物卡片。 - 在文本中也可以使用markdown,只要后缀名是.md即可。
- 在write中直接插入代码:三个反引号,后面跟语言类型 下面写代码内容 以三个反引号结束,这样代码会高亮显示
GitHub Pages:
- 新用户,新用户创建的组织,以及具体某一个项目,都可以使用GitHub Pages服务来做一个网站。
两类:用户/组织网站 项目网站
做项目网站:
在项目仓库下,新建一个分支叫gh-pages,这个名字是严格要求的。同步一下,切换到该分支,删除该分支下所有的文件,并做成一个版本,然后加一个index.html。添加内容,同步到远端。
公网域名:用户名.github.io/项目名 就可以看到了。
更多技巧:
绑定自己的域名 Custom URLs
- 使用Jekyll框架
GitHub的秘密机关:(Git and Github Secrets)
- 在目录树中找一个文件:敲快捷键t 就可以查找
- github上可以找到大牛,找自己领域的大牛,可以通过项目来找人,看一个项目的star的数量。在commits中可以找到。
- 看一个项目该不该用,可以看该项目更新的时间。越近越偏向于使用。
很好的资源:
- 基础知识讲解:http://git-scm.com/book/zh/v1
- 对GitHub Flow讲解:http://segmentfault.com/a/1190000002413519