# Github入门
学习来源:慕课教程
# 安装与配置
git --version
验证是否安装成功,如果安装成功,会显示 git 版本号。
因为我的电脑本身就安装了git,所以查看版本后,直接跳过了安装这一步。
git config --global user.name "username"
git config --global user.email "email"
将 username 和 email 换成 github 的用户名和密码,
配置完成后执行命令 git config --list
,可以查看现在的配置信息。
# ssh key 密钥
输入 cd ~/.ssh
,进入到目录后输入ls
,查看是否存在密钥。
一般有两个密钥。id_rsa 文件是私钥,不需要上传,id_rsa.pub 文件是公钥,是需要上传的。
如果没有,则需要手动生成,通过下面的命令生成 ssh key:
ssh-keygen -t rsa -C "youremail@example.com"
这里的邮箱可以就填你 github 绑定的邮箱,然后一直回车即可完成当前步骤。
登录 Github,打开 setting -> SSH keys,点击右上角 New SSH key。 把生成好的公钥 id_rsa.pub 放进 key 输入框中,再为当前的 key 起一个 title 即可。
# 把在github上建立的仓库放到本地
进入到仓库,点击“Clone or download”,复制仓库地址
输入git clone
,然后点击鼠标右键,把我们刚才复制的仓库地址粘贴在这里,按下回车后代码就可以下载到本地文件夹下面了。
# 修改并上传
# git add
完成修改后,第一步,需要将修改的文件添加到暂存区。
git add <path>
把指定的具体文件添加到暂存区
git add .
把所有修改的文件都添加
# 为啥要有暂存区?
有时候你一次性修改了许多文件,然而其实这些文件,有些跟需求 A 有关,有些跟需求 B 有关,因为实际工作中,大多数时候我们都是多个需求并行开发的,明明是两个独立的需求,你一次就把所有修改的文件全部提交上去了,那么就不能保证提交历史的清晰。
所以这时候文件的选择就可以交给暂存区去做,每一次提交都是一个完整的功能开发,保证提交历史干净清晰。
# git commit
将暂存区里的文件给提交到本地的版本库
git commit -m "message"
message
的内容是本次提交的说明
# 小技巧 --help
如果当你使用某个命令不知道要加什么参数的时候,可以使用 help 命令。
例如这里,使用git commit --help
,就可以跳转到官网相关文档。
# git push
在使用git commit
命令将修改从暂存区提交到本地版本库后,
只剩下最后一步将 本地 版本库的分支推送到 远程服务器 上对应的分支了。
git push origin <远程分支名>
如果该远程分支不存在,则会被新建。
如果当前分支只有一个远程分支,那么命令可以直接简化成git push
。
# 向开源库贡献代码
# fork、clone、添加
先 fork 到自己的仓库。一般情况下,别人的仓库,我们是没有权限直接向他们的分支提交代码的,所以要先 fork 到自己的仓库。
将刚才 fork 的代码 clone 到本地,然后进入到项目目录,添加原项目地址:
(以ant-design 的 git 地址为例)
git remote add upstream https://github.com/ant-design/ant-design.git
大多数情况下,在自己开发过程中,原项目也在不断的更新,所以要添加远程项目地址,方便随时和原项目代码保持同步。
# 获取最新代码
git pull upstream master
# 创建分支
git checkout -b
大多数情况下,我们不会直接修改 master 分支,而是根据修改的内容新建分支。
比如你是想修改 bug 则可以创建一个 bugfix 分支;你是想新增特性,可以创建一个 feature 分支。
分支取名最好有意义,而且简洁,例如可执行如下命令:
git checkout -b bugfix
接下来我们就可以在新分支上修改代码,修改完成后提交 commit 到代码库。
# 合并修改
当你修改完成的时候,原项目代码可能已经更新过了,所以在这里,就需要我们同步一次,不然到时候合代码可能会产生冲突而不允许合入。
首先切换到 master 分支,执行如下命令:
git checkout master
然后,同步最新的远程代码:
git pull upstream master
然后切回到 bugfix 分支:
git checkout bugfix
把 master 分支的最新 commit 合并到 bugfix 分支:
git rebase master
最后,就可以把现在的代码 push 到远端的 bugfix 分支了:
git push origin bugfix
# 提交 Pull Request
可以进入到你自己的远端项目主页,点击 New pull request 按钮,然后选择你的 bugfix 分支和原项目仓库的 master 分支,提交申请,等待作者进行代码 review 并合并。
如果 review 不合格,作者会提示你修改,按照作者的提示修改好后重新提交代码即可。
# GitHub Pages
我们可以把项目代码写好后上传 GitHub,然后利用 GitHub Pages 为这个项目生成一个静态页面,别人通过网址可以访问我们的页面。
优点:
- 免费,不需要再购买云服务,就可以搭建个人网站;
- 简单,步骤简单,只需要按着教程一步步来,无需关注技术细节;
- 功能多,生态链丰富,你可以绑定自己域名,使用免费 https,还能使用现成的主题,插件等;
- 省心,只需要负责搭建,不需要关心如何维护之类的。
作为免费的服务,当然也有一些限制:
在使用的时候项目和网站的大小不要超过 1 GB,每个月的带宽使用上限为 100 GB。
# 一些技巧
# fork,star,watch
- 想拷贝别人项目到自己帐号下就fork一下;
- 持续关注别人项目更新就star一下;
- watch是设置接收邮件提醒的。
# 搜索技巧
假设我的项目中要使用一个可以随意拖拽的组件,而且我的项目是基于 React 技术栈,想在 GitHub 上面找下有没有现成的组件可以使用。
- 明确关键字:drag react
- 语言类型:比如,我项目里面用到的是 Typescript,就可以在左边 Languages 模块点击 Typescript 标签
- 排序:Best match 或者 Most stars
按着排序的结果依次点进去看看,绝大多数情况下,我们都可以在排名靠前的几个搜索结果里面找到我们想要的项目。
# 快捷键
shift + ? 在 GitHub 页面中按下 shift + ? 则可以调出快捷键页面
(注意:经过测试,要在英文输入法下使用才能调出)最常用的:s键或/键,直接定位到搜索框。
快捷键 t 堪称查看源代码的神器。 当你在查看开源项目的源码时,在目录结构的页面中按下 t ,页面会发生变化,进入文件查找模式。
- 什么叫文件查找模式?
比如,我想查找这个项目里面跟 button 有关的文件,那我们不妨进入文件查找模式,输入 “button” 试试。
之后,下面的文件列表列出来的都是跟 button 有关的文件,这样就能快速定位到我们想要查看的文件。
# 代码高亮、标注单行代码
代码高亮:
只需要在发给别人的 GitHub 链接后面加上 #L 和行号就行了。
例如,我想把第 4 行标记出来,则需要在链接最后面加上#L4
。标注单行代码 标注多行代码,需要用 “-” 连接起来即可,例如我想标记第 4 行到第 6 行,则链接后面需要加上
#L4-L6
。