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

以前的这篇文章「从0开始学习 GitHub 系列之「Git速成」」相信你们都已经对 Git 的基本操做熟悉了,可是这篇文章只介绍了对本地 Git 仓库的基本操做,今天我就来介绍下如何跟远程仓库一块儿协做,教大家向 GitHub 上提交大家的第一行代码!git

1. SSH

你拥有了一个 GitHub 帐号以后,就能够自由的 clone 或者下载其余项目,也能够建立本身的项目,可是你无法提交代码。仔细想一想也知道,确定不可能随意就能提交代码的,若是随意能够提交代码,那么 GitHub 上的项目岂不乱了套了,因此提交代码以前必定是须要某种受权的,而 GitHub 上通常都是基于 SSH 受权的。程序员

那么什么是 SSH 呢?
简单点说,SSH是一种网络协议,用于计算机之间的加密登陆。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行受权,因此想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。github

2. 生成SSH key

Linux 与 Mac 都是默认安装了 SSH ,而 Windows 系统安装了 Git Bash 应该也是带了 SSH 的。你们能够在终端(win下在 Git Bash 里)输入 ssh 若是出现如下提示证实你本机已经安装 SSH, 不然请搜索自行安装下。算法

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

Linux/Mac 系统 在 ~/.ssh 下,win系统在 /c/Documents and Settings/username/.ssh 下,都是隐藏文件,相信大家有办法查看的。服务器

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

3. GitHub 上添加 SSH key

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

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

须要作的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就能够了(上述示例为了安全粘贴的公钥是无效的),Title 那栏不须要填写,点击 Add SSH key 按钮就ok了。学习

这里提醒下,怎么查看 id_rsa.pub 文件的内容?

Linux/Mac 用户执行如下命令:

cd ~/.ssh
cat id_rsa.pub

Windows用户,设置显示隐藏文件,可使用 EditPlus 或者 Sublime 打开复制就好了。

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

4. Push & Pull

在提交代码以前咱们先要了解两个命令,也是上次的文章没有介绍的,由于这两个命令须要跟远程仓库配合。

Push :直译过来就是「推」的意思,什么意思呢?若是你本地代码有更新了,那么就须要把本地代码推到远程仓库,这样本地仓库跟远程仓库就能够保持同步了。

代码示例: git push origin master

意思就是把本地代码推到远程 master 分支。

Pull:直译过来就是「拉」的意思,若是别人提交代码到远程仓库,这个时候你须要把远程仓库的最新代码拉下来,而后保证两端代码的同步。

代码示例: git pull origin master

意思就是把远程最新的代码更新到本地。通常咱们在 push 以前都会先 pull ,这样不容易冲突。

5. 提交代码

添加 SSH key 成功以后,咱们就有权限向 GitHub 上咱们本身的项目提交代码了,而提交代码有两种方法:

Clone本身的项目
咱们以我在 GitHub 上建立的 test 项目为例,执行以下命令:

git clone git@github.com:stormzhang/test.git

这样就把 test 项目 clone 到了本地,你能够把 clone 命令理解为高级点的复制,这个时候该项目自己就已是一个git 仓库了,不须要执行 git init 进行初始化,并且甚至都已经关联好了远程仓库,咱们只须要在这个 test 目录下任意修改或者添加文件,而后进行 commit ,以后就能够执行:

git push origin master

进行代码提交,这种是最简单方便的一种方式。

至于怎么获取项目的仓库地址呢?以下图:

关联本地已有项目
若是咱们本地已经有一个完整的 git 仓库,而且已经进行了不少次 commit ,这个时候第一种方法就不适合了。

假设咱们本地有个 test2 的项目,咱们须要的是在 GitHub 上建一个 test 的项目,而后把本地 test2 上的全部代码 commit 记录提交到 GitHub 上的 test 项目。

第一步就是在 GitHub 上建一个 test 项目,这个想必你们都会了,就不用多讲了。

第二步把本地 test2 项目与 GitHub 上的 test 项目进行关联,切换到 test2 目录,执行以下命令:

git remote add origin git@github.com:stormzhang/test.git

什么意思呢?就是添加一个远程仓库,他的地址是 git@github.com:stormzhang/test.git ,而 origin 是给这个项目的远程仓库起的名字,是的,名字你能够随便取,只不过你们公认的只有一个远程仓库时名字就是 origin ,为何要给远程仓库取名字?由于咱们可能一个项目有多个远程仓库?好比 GitHub 一个,好比公司一个,这样的话提交到不一样的远程仓库就须要指定不一样的仓库名字了。

查看咱们当前项目有哪些远程仓库能够执行以下命令:

git remote -v

接下来,咱们本地的仓库就能够向远程仓库进行代码提交了:

git push origin master

就是默认向 GitHub 上的 test 目录提交了代码,而这个代码是在 master 分支。固然你能够提交到指定的分支,这个以后的文章再详细讲解。

对了,友情提醒,在提交代码以前先要设置下本身的用户名与邮箱,这些信息会出如今全部的 commit 记录里,执行如下代码就能够设置:

git config —global user.name "stormzhang"
git config —global user.email "stormzhang.dev@gmail.com"

6. 总结

经过本文的介绍,终于你们能够成功的向 GitHub 提交代码了,可是相信你们还有不少疑问,好比关于分支的理解与使用,好比 git 的其余一些有用的配置,好比怎么向一些开源项目贡献代码,发起 Pull Request 等,以后的系列文章会逐一进行介绍,敬请期待。

PS:昨天的文章「如何在一群程序员中识别Android开发?」,是我写这么多文章以来第一次没有一个反对意见的,回复全是清一色的「有理有据,深度好文」,还有表示「看了个人文章后特地去照了下镜子,忽然发现说的太他妈对了」,还有说「终于找到了为何一开始就选中 Android 的缘由了」,我只能说,低调低调!

PS:之前大家生日的时候都在我文章底下评论求祝福,我给大家祝福过,号召点赞过,甚至还给有些人发过红包,其实我想说,28年前的今天,一位伟大的程序员诞生了,由于天生长得帅,因此命中注定选择了 Android 开发,今天终于轮到我生日了,还特地给大家准备了一篇干货,大家看着办吧!

相关文章:

从0开始学习 GitHub 系列之「初识 GitHub」

从0开始学习 GitHub 系列之「加入 GitHub」

从0开始学习 GitHub 系列之「Git 速成」


本文原创发布于微信公众号 AndroidDeveloper「googdev」,转载请务必注明出处!

图片描述

相关文章
相关标签/搜索