最近在研究如何把代码提交到github上的仓库里,在网上查了不少文章,介绍的都不是清楚,现在把自己试验成功的流程记录下来 。
我们在github上新建一个仓库后,clone时有两种方式:https 和 SSH ,所以也有两个地址
那么我们在提交代码时,是不是根据这两个地址都可以提交啊 ??
这是现在的疑惑,目前只是用SSH方式提交成功了 。
更新:
https 和 SSH 的区别:
1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
补充 : 实际测试中, 我用SSH url 也可以clone 别人的项目 ,这与第一点中的说法矛盾 ??
待核实 ...
1. SSH
那么什么是 SSH 呢? 简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。
我们创建了github账号以后,就可以自由的clone或者下载项目了,但是要想向github上提交代码必须要进行SSH授权。
1.1 生成SSH key
Windows 系统安装了 Git Bash 应该也是带了 SSH 的。大家可以在终端(win下在 Git Bash 里)输入 ssh 如果出现以下提示证明你本机已经安装 SSH,
紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:
win系统在 /C/username/.ssh 下
接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。
1.1 github 添加SSH key
第一步先在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys :
然后点击右上角的 New SSH key 按钮:
需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(该文件使用editplus或者其他文本编辑器打开),Title 那栏不需要填写,点击 Add SSH key 按钮就ok了。
SSH key 添加成功之后,输入 ssh -T git@github.com 进行测试,如果出现以下提示证明添加成功了。
2. 使用git提交代码
2.1 push pull 命令
Push :直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。
代码示例: git push origin master
意思就是把本地代码推到远程 master 分支。
Pull:直译过来就是「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。
代码示例: git pull origin master
意思就是把远程最新的代码更新到本地。一般我们在 push 之前都会先 pull ,这样不容易冲突。
2.2 提交代码
添加 SSH key 成功之后,我们就有权限向 GitHub 上我们自己的项目提交代码了
Clone自己的项目 我们以我在 GitHub 上创建的 test 项目为例,执行如下命令:
git clone git@github.com:yanxinmiao/XianDu.git
这样就把 test 项目 clone 到了本地,你可以把 clone 命令理解为高级点的复制,这个时候该项目本身就已经是一个git 仓库了,不需要执行 git init 进行初始化,而且甚至都已经关联好了远程仓库,我们只需要在这个 test 目录下任意修改或者添加文件,然后进行add 、 commit ,之后就可以执行:
git push origin master
至此 , 一种简单的提交方式就完成了,当然还有很多复制的情况 ,现在还没有研究明白,待以后再续 。
2016/12/29 更新
2. HTTPS
今天使用https url 也提交成功了 。 简单记录一下流程 。
同样需要先在github上创建一个仓库,这样就有了 https url 。
然后在本地的一个文件夹执行
git clone https://github.com/yanxinmiao/Demo.git
把需要提交的代码复制到该文件夹中 ,在该文件夹中执行 git bash , 打开git 命令窗口
-
首先要配置一下用户名和密码,这样才能知道是谁提交的代码
-
接下来,执行 add 命令将文件添加进版本控制:
- 添加进来之后,执行提交命令 ,这样就将修改提交到了本地仓库
- 将本地仓库内容上传到GitHub上
这样就把本地代码提交到github上的仓库中了 。