git 、github

使用git 把代码提交到github上

2016-12-28  本文已影响193人  皇马船长

最近在研究如何把代码提交到github上的仓库里,在网上查了不少文章,介绍的都不是清楚,现在把自己试验成功的流程记录下来 。

我们在github上新建一个仓库后,clone时有两种方式:https 和 SSH ,所以也有两个地址

QQ截图20161228174954.png QQ截图20161228175004.png

那么我们在提交代码时,是不是根据这两个地址都可以提交啊 ??
这是现在的疑惑,目前只是用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,

QQ截图20161228172547.png

紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:

QQ截图20161228172527.png
win系统在 /C/username/.ssh

接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

1.1 github 添加SSH key

第一步先在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys :

QQ截图20161228175852.png

然后点击右上角的 New SSH key 按钮:

QQ截图20161228180024.png

需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(该文件使用editplus或者其他文本编辑器打开),Title 那栏不需要填写,点击 Add SSH key 按钮就ok了。

SSH key 添加成功之后,输入 ssh -T git@github.com 进行测试,如果出现以下提示证明添加成功了。

QQ截图20161228172517.png

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 命令窗口

QQ截图20161229145525.png QQ截图20161229145532.png

这样就把本地代码提交到github上的仓库中了 。

QQ截图20161229150348.png

参考文章

1. 从0开始学习 GITHUB 系列之「向GITHUB 提交代码」

上一篇 下一篇

猜你喜欢

热点阅读