GitHub 学习
全世界每时每刻都有开发者在使用 GitHub。
什么是 GitHub:
GitHub 为开发者提供 Git 仓库的托管服务,是共享代码的完美场所。GitHub 公司总部位于美国旧金山,有一只章鱼腿+猫头的吉祥物 octocat:
然而 GitHub 并不止于 Git 仓库的托管服务,还提供了一系列帮助高效、高质编写代码的功能,仓库托管也只是 GitHub 的项目之一,发展路上的一个点而已。
GitHub 与 Git 的区别:
此二者是完全不同的。对于 Git 是一种 scm,常用作版本控制器,即可以将代码存入 Git 仓库中,并进行各种代码管理。而 GitHub 则是提供 Git 仓库的一项服务,即公开的 Git 仓库服务器。
所以 GitHub 上的代码全都用 Git 进行管理,对 Git 知识的理解也是熟练使用 GitHub 的关键所在。
GitHub 的几项功能 —— 协作形式变化:
1、Pull Request:
Pull Request 是指开发者在本地对代码进行修改后,向 GitHub 托管的 Git 仓库请求合并代码的功能。GitHub 的 Pull Request 可以很轻松的查看代码修改前后的差别,并可以对其进行交流以及评论,因此如果请求的更改如果与项目的初衷相违,也可以选择拒绝合并;代码的审查工作变得如此惬意。
2、对特定用户进行评论:
任务管理和 BUG 报告可以通过 Issue 面向所有人进行交互。如果想让特定用户看,只需要用"@用户名"格式书写评论,对方便会收到通知(Notifications),然后即可查看 Issue。
此外,还可以使用"@组织名"格式,让属于该组织(Organization)的所有成员都收到通知;输入"@组织名/团队",可以让该组织某团队的所有成员收到通知。这是群发通知的方法。
输入"#编号",会连接到该仓库对应的 Issue 编号。而输入"用户名/仓库名/#编号",则会连接到指定的仓库对应的 Issue 编号。这是自动创建链接的方法。
3、GitHub Flavored Markdown(GFM):
在 GitHub 上,所有输入都可以用 GFM 语法(GitHub 对 Markdown 的扩充)进行描述。相比富文本编辑器编写文档,使用 GFM 语法却可以更快捷,效率很高,而且语法也很简单。它还有一个特别的功能,就是可以添加文字表情。
随着 GitHub 的普及,越来越多的服务也开始兼容 MarkDown 的语法。
能看到、关注其他团队的软件:
将感兴趣的仓库添加至 Watch,就可以在 News Feed 查看该仓库的新闻,如:1、将全公司(本团队就不用了)共用的的仓库添加至 Watch 中,便能及时的获取新版本的新功能、BUG 修正的信息。2、将隔壁团队的仓库添加至 Watch,就可以每天查看他们在开发什么。发现有用的功能、库,就可以搬到自己的团队。
使用 GitHub 的前期准备:
创建 GitHub 账号之后,在本地 Git Bash 中创建 SSH Key,然后在 GitHub 中添加 SSH public Key:
创建 SSH Key:
ssh-keygen -t -C "邮箱"
按照命令提示完成创建后,找到提示中对应的文件夹,其中 id_rsa 是私钥,id_rsa.pub 是公钥。
在 GitHub 中添加公钥:
登录 GitHub 网站,在 Account Settings 中,选择 SSH Keys 菜单添加 SSH Key(现在也可以使用 GPG Keys),其中 Title 是密钥名称,Key 填入 公钥文件中的内容。添加成功之后,邮箱会受到相关提示邮件。
完成添加之后,就能用私钥与 GitHub 认证、通信。执行命令:
ssh -T git@github.com
使用社区功能(GitHub 以人为焦点):
Follow(关注):
关注的用户的活动,将会显示在你的控制面板中。
Watch:
使用 Watch 获取特定仓库的最新开发信息。
新建仓库的选项:Add .gitignore:根据选择的项目、语言等,在初始化时,自动生成 .gitignore 文件(用来描述 Git 仓库中,不需要管理的文件和目录。如系统文件等)。
Clone 已有仓库(ssh-clone-url 可以在 GitHub 网站直接复制):
git clone ssh-clone-url
成功执行完命令,仓库被下载在当前目录中。
git status 命令:查看处于哪个 branch,以及更新状态;untracked 文件(未 committed 到 Git 仓库)。
提交代码到 Git 仓库:
git add 代码文件名 git commit -m "对文件的描述"
git add 命令将文件加入暂存区 stage,git commit 命令再提交。
push 命令,更新 GitHub 的仓库:
git push
这样即在 GitHub 公开了自己代码。上面这些操作都可以在 GitHub 网站,或者其客户端可视化操作。