在之前我们已经完成了GitHub的注册还有git的安装,现在就是将git与GitHub绑定了。
那么,为什么要绑定GitHub呢?就是为了方便我们上传文件。虽然在GitHub上我们可以直接上传文件,但是我试了一下发现并不好用,点击上传完全没反应,可能是网络的原因吧。所以我们利用SSH来完成GitHub的绑定并提交文件,这样很方便快捷。
首先来简单介绍一下SSH协议。
SSH(安全外壳协议,Secure Shell 的缩写)是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。简单来说,SSH就是保障你的账户安全,将你的数据加密压缩,不仅防止其他人截获你的数据,还能加快传输速度。
如果你想详细了解的话,可以参考这篇文章详述 SSH 的原理及其应用
下面就来绑定Github和提交文件吧。
1.绑定Github
我们要用git上传文件到GitHub首先得利用SSH登录远程主机,而登录方式有两种:一种是口令登录;另一种是公钥登录。口令登录每次都要输入密码十分麻烦,而公钥登录就省去了输入密码的步骤,所以我们选择公钥授权。首先我们得在 GitHub 上添加 SSH key 配置,要想生成SSH key,就要先安装 SSH,不过我们安装了 Git Bash,其应该自带了 SSH。检验一下是否安装 SSH,我们在新建的文件夹中右键打开 Git Bash:
输入 ssh 命令,查看本机是否安装 SSH:
如上图所示,即已安装 SSH. 然后,输入 ssh-keygen -t rsa 命令(注意空格),表示我们指定 RSA 算法生成密钥,然后敲四次回车键,之后就就会生成两个文件,分别为秘钥 id_rsa 和公钥 id_rsa.pub. (注意:git中的复制粘贴不是 Ctrl+C 和 Ctrl+V,而是 Ctrl+insert 和 Shift+insert.)文件的位置在 Git Bash 上面都有显示,默认生成在以下目录:
Linux 系统:~/.ssh Mac 系统:~/.ssh Windows 10 :C:/Users/ASUS/.ssh
接下来我们要做的事情就是把公钥 id_rsa.pub 的内容添加到 GitHub。复制公钥 id_rsa.pub 文件里的内容,你可以通过目录找到 id_rsa.pub 文件的位置,用记事本打开文件复制。如果你实在找不到文件也没有关系,按照以下步骤直接在 Git Bash 上打开就行:
`$ cd ~/.ssh `
`$ ls`
`$ cat id_rsa.pub`
(再次注意:git中的复制粘贴不是 Ctrl+C 和 Ctrl+V,而是 Ctrl+insert 和Shift+insert.)接下来进入我们的 GitHub 主页,先点击右上角,再点击 settings :
如下图,先点击 SSH and GPG keys,再点击 New SSH key.
将复制的公钥 id_rsa.pub 的内容粘贴到 key 内,再点击 Add SSH key,如下图:
验证是否成功,我们可以通过在 Git Bash 中输入 ssh -T git@github.com 进行检验:
第一次会出现这种情况,填 yes 就行,若出现下图中的情况,则表明绑定成功:
2.提交文件
提交文件有两种方法:
第一种:本地没有 git 仓库
直接将远程仓库 clone 到本地;将文件添加并 commit 到本地仓库;将本地仓库的内容push到远程仓库。
第二种:本地有 Git 仓库,并且我们已经进行了多次 commit 操作
建立一个本地仓库进入,init 初始化;关联远程仓库;同步远程仓库和本地仓库;将文件添加提交到本地仓库;将本地仓库的内容 push 到远程仓库。
第一种方法详细步骤:
首先,进入GitHub个人主页:
点击进入我新建的 text 项目:
点击 Clone or download,再复制地址,然后进入我们准备存储 Git 仓库的目录,如下图:
接下来,输入 git clone https://github.com/fengye97/text.git,将远程仓库 clone 到本地,如下图:
我们看看 clone 到本地的仓库内容与远程仓库的内容,是否完全一致:
现在我们创建一个 text.txt 测试文件,如下图:
从此目录进入 Git Bash,输入 git status 命令查看仓库状态:
text 已经是一个 Git 仓库了,而我们刚刚创建的文件 text.txt 没有被追踪,也就是没有提交到本地仓库。现在我们使用 git add 命令将文件添加到了「临时缓冲区」,再用 git commit -m “提交信息” 将其提交到本地仓库,如下图:
如果你是第一次提交的话,就会出现下图的情况,会让你输入用户名和邮箱:
你只要再加两行代码就行:
$ git config --global user.name"fengye97"
$ git config --global user.email"***@***.com"
完成后输入 git log 命令查看仓库提交日志:
再输入 git status 查看一下仓库状态:
现在输入 git push origin master 命令,将本地仓库提交到远程仓库,origin是远程主机的名字:
第一次上传需要输入密码,验证成功后,如下图:
刷新 GitHub 中 text 仓库:
这时我们的测试文件已经上传到了 text 仓库中。
第二种方法详细步骤:
首先,我们建立一个本地仓库 demo,使用 git init
命令初始化这个仓库,如下图:
输入 git remote add origin https://github.com/fengye97/text.git
命令,关联远程仓库,接着输入 git pull origin master
命令,同步远程仓库和本地仓库,如下图:
回到本地仓库,发现我们已经把远程仓库的内容同步到了本地仓库:
接下来的步骤就与第一种方法一样(可以参考上面,已经写得很详细了),先输入 git add 和 git commit 命令,将要提交的文件添加并提交到 demo 仓库;然后再输入 git push origin master 命令,将本地仓库修改(或者添加)的内容提交到远程仓库就完成啦!!!