一、Github简介和基本操作
Github 上操作基本上围绕一个个项目展开。项目就是一个文件夹,在github中成为“仓库”(repository),里面放着所有的项目文件,可以是代码,也可以是任意的文档。项目不仅保存着最新版本的代码,还保存着历史版本和修改记录。
日常操作都在dashboard (控制面板),点github页面左上角的小猫进入。
然后点绿色的按钮新建项目
勾选Initialize...然后Create...
commit动词讲就是保存版本,名词讲就是版本。修改项目后点commit就可以生成新版本,旧版本也还在。
新仓库的新 commit,默认放在叫 master 的分支上,master分支上的代码都是可以部署的,就是随时可以放到产品服务器上跑。在底层每个分支没有拷贝出自己独立的历史线,master 其实是一个指针,指向 分支上最新版本,每个 commit 顺藤摸瓜找到自己的前一个 commit,于是历史线就确定了。
off master 意思是“基于 master ”分支。
branches 标签下,点击分支名字即可切换,或敲 Cmd-B 再输名字回车(熟练后)。
merge 融合的意思,merge一个分支到 master上,master就有了该分支的所有代码。
如果本地仓库叫 coco,github.com 上托管了这个仓库,那本地有个 master 分支,远端(github上)也有个 master 分支,是不同的分支。
sync 就是同步,可以把远端的master 拉( pull )到我本地使本地和远端的master 融合。和拉对应的是 推 (push),就是把本地的合并到远端。
Git中的版本以文件的内容或目录的结构计算出一个 SHA-1 哈希值,40 个十六进制字符(0-9 及 a-f)组成,作为指纹字符串,版本以此哈希值用来作索引的,而不是靠文件名。
二、团队合作流程
Github Flow ,就是给一个项目开发新功能要走的几步,核心就是”拉取请求“( Pull Request ),简称 PR 。
和朋友合作,先在项目的settings页面,把她添加成项目的“协作者”( collaborator )
一般是两个人(假如)各开一个”话题分支“( Topic Branch ),然后把代码 clone 到本地进行新功能的开发,每实现一点小功能就 publish 到远端,这样方便队友查看我的进度。
PR就是说,我做好的分支,进行讨论后发个PR,项目维护者(这里是我俩),就可以考虑是否 Merge Pull Request ( 融合拉取请求 ),采纳这个分支。
需要小改动时,我们选择 快速PR:在网页中edit要修改的文件,然后填写一个 Topic 分支名创建分支,commit到分支上发PR。
三、贡献开源项目
Fork 就是拷贝别人的项目,拷贝后,修改了代码可以向原作者发PR,他可以考虑是否采纳。
四、github技巧
打开一个项目主页,当然会有很多文件和目录了,如何快速找到一个文件呢?可以敲 t 然后在打开的页面中就可以输入文件名进行筛选了。