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

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

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

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

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

cd Desktop/

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

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

git clone ……

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

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


上面步骤我们完成了从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, 否则请搜索自行安装下。

紧接着输入 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 :

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

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

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 ,这样不容易冲突。

Git与GitHub同步的更多相关文章

  1. 在windows下安装Git并用GitHub同步

    准备环境: 1,注册github账户 2,下载安装git(下载地址:https://git-scm.com/download/win) 注释: git是什么? git是版本管理工具,当然也是分布式的管 ...

  2. Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上

    前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...

  3. Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法

    Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法 1.git在本地的电脑创建了仓库,要远程同步github的仓库.使用 ...

  4. Idea中通过Git将代码同步到GitHub

    一.Idea中配置Git 点击IntelliJ IDEA->Preferences...->Version Control->Git->Path to Git executab ...

  5. 简单使用Git和Github来管理自己的代码和读书笔记

    原文链接:http://my.oschina.net/bxxfighting/blog/378196   先注册github.com的账号官方网站: https://github.com/ 注册界面, ...

  6. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  7. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  8. git与github使用

    Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...

  9. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

随机推荐

  1. spring boot 尚桂谷学习笔记11 数据访问03 JPA

    整合JPA SpringData 程序数据交互结构图 (springdata jpa 默认使用 hibernate 进行封装) 使用之后就关注于 SpringData 不用再花多经历关注具体各个交互框 ...

  2. ubuntu 使用pecl 安装 PHP AMQP Extension

    下载扩展: sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo apt-get -y install libssl-d ...

  3. 开发环境绑定host vue 返回 invalid host header

    事情:使用域名绑定host为本机电脑ip,vue返回 invalid host header 原因:新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostnam ...

  4. ps学习记录

    基本快捷键: ctrl + 放大 ctrl - 缩小 ctrl 空格键 放大工具 ctrl 0 适合屏幕大小 ctrl 1 显示实际大小 ctrl n 新建画布 ctrl v 移动工具 按住alt键 ...

  5. Vue小白篇 - ES6的语法

    为什么要学 ES6 的语法呢? 因为 Vue 语法有很多都是 ES6(ECMAScript 6),这里推荐 [阮一峰 ECMAScript 6 入门]: http://es6.ruanyifeng.c ...

  6. LeetCode Array Easy 283. Move Zeroes

    Description Given an array nums, write a function to move all 0's to the end of it while maintaining ...

  7. vue.config.js配置前端代理

    // vue.config.js 配置说明 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions // 这 ...

  8. python print 连续输出变量加字符串

    a=1 b=2 print(a,'+',b,'=',a+b) 输出:1+2=3

  9. Math.random()详解

    Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码.例如:double a=Math.random()*(3-1)+1,设置 ...

  10. SSH出错

    [root@node01 ~]# ssh node02 ssh_exchange_identification: Connection closed by remote host 修改连接数无效 [r ...