熟练使用GitHub,做一名优秀的码农!

如何通过Git Bash实现本地与远端仓库——GitHub的同步

1、下载安装Git:下载网址

2、在自己的github上新建一个repository

例如我这里新建了一个叫test的repository,然后点击图中绿色长方块:Clone or download。接着再点击红圈,此时我们已经将这个test仓库的地址复制下来了。

如何查看本地仓库的远程地址 本地仓库同步远程仓库_git

接着我们打开之前安装好的Git Bash,首先输入命令:

cd Desktop/

进入到桌面位置,当然其他位置也可以,这里选择桌面只是作为演示,然后输入:

(注:下面命令中的省略号部分是我们之前复制的GitHub上的仓库的地址,这里我们只要Paste就可以了)

git clone ……

如何查看本地仓库的远程地址 本地仓库同步远程仓库_如何查看本地仓库的远程地址_02

上述命令执行完毕后结果如下图所示:

图中左边的test文件夹就是从GitHub上Clone下来的repository,此时你的桌面应该会多一个文件夹,名字就是你GitHub上的那个repository的名字。

如何查看本地仓库的远程地址 本地仓库同步远程仓库_远程仓库_03


上面步骤我们完成了从GitHub到本地,下面我们将学习如何将本地的代码提交到自己的GitHub上。

3、SSH

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么 GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权的,而 GitHub 上一般都是基于 SSH 授权的。 那么什么是 SSH 呢? 简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。

4、生成SSH key

Linux 与 Mac 都是默认安装了 SSH ,而 Windows 系统安装了 Git Bash 应该也是带了 SSH的。大家可以在终端(win下在 Git Bash 里)输入 ssh 如果出现以下提示证明你本机已经安装 SSH, 否则请搜索自行安装下。

如何查看本地仓库的远程地址 本地仓库同步远程仓库_提交代码_04

紧接着输入 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 公钥进行配对,授权成功才可以提交代码。

5、GitHub上添加SSH key

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

如何查看本地仓库的远程地址 本地仓库同步远程仓库_远程仓库_05

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

如何查看本地仓库的远程地址 本地仓库同步远程仓库_提交代码_06

需要做的只是在 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 进行测试,如果出现以下提示证明添加成功了。

如何查看本地仓库的远程地址 本地仓库同步远程仓库_远程仓库_07

6、编写代码并保存到test文件夹中

假设这里我们编写了一个helloworld.c的C程序

7、提交程序helloworld.c到git仓库

下面两行代码将我们编写的helloworld.c程序提交到了git仓库。

PS:如果忘记要在Git Bash中输入什么命令,可以尝试输入:git status,该命令会提示我们此时仓库的状态,然后我们只需根据提示去输入相应的命令即可。

git add helloworld.c
git commit -m 'first commit'

8、添加一个远程仓库

git remote add origin https://github.com/XMTam/test.git

上述命令中的https://github.com/XMTam/test.git是我们在GitHub上的test的地址,获取方法同步骤2。

9、 更新远程仓库到本地

git pull --rebase origin master

10、 提交本地代码到远程仓库

git push origin master

对了,友情提醒,在提交代码之前先要设置下自己的用户名与邮箱,这些信息会出现在所有的 commit 记录里,执行以下代码就可以设置:

git config —global user.name "XMTam"
git config —global user.email "2437214340@qq.com"

后记:Push & Pull

在提交代码之前我们先要了解两个命令,因为这两个命令需要跟远程仓库配合。

Push :直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把 代码示例:

git push origin master

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

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

git pull origin master

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