GitHub是何物?
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。开发者可以将代码在 GitHub 上开源,可以浏览其它项目的代码,fork 到自己名下做修改,clone 回本地(没有访问权限的 private repo 除外)使用,也可以发起 pull request 向上游提交自己的修改。
操作指南
创建仓库
第一步,点击加号下New repository新建仓库
第二步,选择选项
- Repository name,仓库名称;
- Description,描述(可选);
- Public,默认的仓库类型;
- Initialize this repository with Add a README file,初始化仓库的信息文件,建议勾选。
完成这些后点击右下角的绿色Create repository按钮就可以创建了
现在,仓库就创建好了~
仓库名为 test ,包含 1个commit,就是我们通过勾选Initialize this repository with Add a README file,创建了一个初始化提交文件README.md,其中文件后缀为.md,表示文件为 Markdown 格式。
黑话
Repository:简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
Issues:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
Star:可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
Fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
Pull Request:可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
**Merge:**可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
**Watch:**可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
**Gist:**如果我们没有项目可以开源或者只是单纯的想分享一些代码片段的话,我们就可以选择Gist。不过如果不翻墙的话,Gist并不好用。
Git常用命令介绍
接下来介绍 Git 的命令操作,包含 init、add 等,在 Git 中,所有的命令都是以git开头,例如,git init其作用就是初始一个 Git 仓库。
此外,在这里还要强调一点,那就是:在我们进行任何的git操作之前,我们都得先切换到 Git 的仓库目录。换言之,我们得到先进入到(我们定义的)Git 仓库的最顶层文件目录下,然后从此目录中进入 Git Bash,这样之后的操作才能顺利进行。
选择一个目录作为 Git 仓库,然后进入目录之中,点击鼠标右键,再选择Git Bash Here,即可打开 Git Bash 的命令行窗口。
如上图所示,Git 会自动定位到进入的位置,如我们选择的demo目录,这也是我们需要先进入到 Git 仓库的最顶层目录下,然后再打开 Git Bash 的原因。
-
git status
在命令行窗口的光标处,输入git status命令,查看仓库的状态
-
git init
在命令行窗口的光标处,输入git init命令,初始化 Git 仓库
-
git add
在命令行窗口的光标处,输入git add hit.txt命令,将hit.txt文件添加到 Git 仓库
-
git commit
在命令行窗口的光标处,输入git commit -m "text commit"命令,将hit.txt文件提交到 Git 仓库
-
git log
在命令行窗口的光标处,输入git log"命令,打印 Git 仓库提交日志
-
git branch
在命令行窗口的光标处,输入git branch命令,查看 Git 仓库的分支情况
-
git checkout
在命令行窗口的光标处,输入git checkout a命令,切换到a分支
-
git merge
切换到master分支,然后输入git merge a命令,将a分支合并到master分支
-
git branch -d & git branch -D
在命令行窗口的光标处,输入git branch -d a命令,删除a分支
-
git tag
在命令行窗口的光标处,输入git tag v1.0命令,为当前分支添加标签
Git 与 GitHub 的绑定
完成 Git 和 GitHub 的绑定,就可以拥有通过 Git 向 GitHub 提交代码的能力。不过在这之前,我们需要先了解 SSh(安全外壳协议),因为在 GitHub 上,一般都是通过 SSH 来授权的,而且大多数 Git 服务器也会选择使用 SSH 公钥来进行授权,所以想要向 GitHub 提交代码,首先就得在 GitHub 上添加 SSH key配置。
生成 SSH key
对于 Windows 系统,其默认是不安装 SSH 的,不过由于我们安装了 Git Bash,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh命令,查看本机是否安装 SSH
如上图所示,此结果表示我们已经安装 SSH 。接下来,输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,之后就就会生成两个文件,分别为id_rsa和id_rsa.pub,即密钥id_rsa和公钥id_rsa.pub
密钥和公钥生成之后,我们要做的事情就是把公钥id_rsa.pub的内容添加到 GitHub,这样我们本地的密钥id_rsa和 GitHub 上的公钥id_rsa.pub才可以进行匹配,授权成功后,就可以向 GitHub 提交代码了。
添加 SSH key
如上图所示,进入我们的 GitHub 主页,点击我们的头像然后进入设置页面:
进入设置后,在左侧边栏目录中找到SSH and GPG keys
然后点击New SSH key按钮!
我们只需要将公钥id_rsa.pub的内容粘贴到Key处的位置(Titles的内容不填写也没事),然后点击Add SSH key 即可。
验证绑定是否成功
可以通过在 Git Bash 中输入ssh -T git@github.com进行测试:
如上图所示,此结果即为Git 与 GitHub 绑定成功的标志。
通过 Git 将代码提交到 GitHub
需要先了解两个命令,也是我们在将来需要经常用到的两个命令,分别为 push 和 pull 。
push:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:
git push origin master
pull:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:
git pull origin master
首先进入目标项目,然后点击绿色的code按钮
然后复制下图所示的地址链接。
然后,进入我们准备存储 Git 仓库的目录,例如下面我们新建的GitRepo目录, 从此目录进入 Git Bash,输入
git clone https://github.com/andream7/cuit_sharing.git
其中clone后面所接的链接为我们刚刚复制的远程仓库的地址
这个步骤以后我们的本地项目文件夹下面就会多出个文件夹,该文件夹名即为我们github上面的项目名,如上图所示,我们已经把远程的mybatis-tutorial仓库clone到本地了
上传代码
若要上传代码,则需输入命令cd,进入目标文件夹
接下来依次输入以下代码即可完成其他剩余操作:
git add . (注:别忘记后面的.,此操作是把cuit_sharing文件夹下面的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤第一次需要你输入帐号和密码)