我认为了解 GitHub 相关的知识是非常有必要的,所以今天开始看《GitHub 入门与实践》这本书。
第一章 欢迎来到 GitHub 的世界
1.1 GitHub 与 Git 的区别
- 在 Git 中,开发者将源代码存入名叫 “Git 仓库”的资料库中加以使用。
- 而 GitHub 则是网络上提供 Git 仓库的一项服务。
- GitHub 上公开的软件源代码全都由 Git 进行管理。
1.2 使用 GitHub 会带来哪些变化
1.2.1协作形式的变化
- 在开发者之间引发化学反应的 Pull Request
Pull Request 是指开发者在本地对源代码进行更改后向 Github 中托管的 Git 仓库合并的功能- 开发者可以在 Pull Request 上通过评论交流。
- 通过平台这个交流功能,开发者可以轻松修改源代码,并公开修改的细节,然后请求合并。
- Pull Request 可以查看源代码的前后差别,还可以对其进行评论。
- 对特定用户进行评论
输入“@组织名”:相当于群中@所有人。
输入“#编号”:会连接到该仓库所对应的 Issue 编号。
输入“用户名/仓库名#编号”:则可以连接到指定仓库所对应的 Issue 编号。
1.2.2 能查看更多其他团队的软件
只要将感兴趣的仓库添加到 Watch 中,就可以在 News Feed 查看该仓库的相关信息。
1.2.3 与开源软件相同的开发模式
将 GitHub 运用到企业中,便会带来与开源软件开发相同的开发模式。
1.3 GitHub 提供的主要功能
Git 仓库
可以免费建立 n 个 Git 仓库,建立私有仓库需要收费。Organization
如果是公司建议使用,优点在于可以统一管理账户和权限,还能统一支付一些费用。Issue
它的功能是将一个任务或问题分配给一个 Issue 进行最终和管理的功能,在 GitHub 上,每当进行 Pull Requst,都会同时创建一个 Issue。Wiki
通过它,任何人都能随时对一篇文章进行更改并保存。
Wiki页也是作为 Git 仓库进行管理的,改版的历史记录会被切实保存下来。Pull Request
第二章 Git 的导入
Git 仓库管理功能是 GitHub 的核心。
特点:拥有多个仓库。
优点:不必链接远程仓库即可开发
缺点:使用前必须指定规范,否则难以找到最新代码保存的位置,导致开发失控。
Git 是分散型版本管理的代表。随着 Git 与 GitHub 的普及,今后使用分散型的开发者将占大多数(还有以 Subversion 为代表的集中型),只要规则制定得当,分散型同样能向集中型哪有进行管理。
第三章 使用 GitHub 的前期准备
3.1前期准备
- 1.创建账户
- 2.设置头像
- 3.设置 SSH Key
- 4.添加公开密钥
- 5.使用社区功能 Follow(关注)别人
3.2 实际动手使用
创建仓库
- Initialize this repository with a README
GitHub 会自动初始化仓库,并设置 README 文件,让用户可以立刻 clone 这个仓库。
如果想向 GitHub 添加手中已有的 Git 仓库,建议不要勾选,直接手动 push。
Add .gitignore(下方左侧)
通过它可以在初始化时自动生成 .gitignore 文件,这个文件可以记录不需要在 Git 仓库中管理的文件。
Add a license(下方右侧)
添加许可协议。
3.2 公开代码
-
clone 已有仓库
$ git clone git@github.com:Jun-Dong/Hello.git Cloning into 'Hello'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
-
提交
$ cd Hello$ git add Hello.py $ git commit -m "Add hello world by python" [master ce2ad66] Add hello world by python 1 file changed, 1 insertion(+) create mode 100644 Hello.py $ git push Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 304 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To github.com:Jun-Dong/Hello.git 7331ceb..ce2ad66 master -> master $ git log commit ce2ad66d13cbe293201fa5cc5acfa87e019098b0 (HEAD -> master) Author: Jadon <761529114@qq.com> Date: Sat Apr 14 20:14:32 2018 +0800 Add hello world by python
通过 git add 将文件加入暂存区,在通过 git cimmit 提交。
git commit是将本地修改过的文件提交到本地库中。
git push是将本地库中的最新信息发送给远程库。
git log 查看日志。