Git与GitHub同步
如何通过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同步的更多相关文章
- 在windows下安装Git并用GitHub同步
准备环境: 1,注册github账户 2,下载安装git(下载地址:https://git-scm.com/download/win) 注释: git是什么? git是版本管理工具,当然也是分布式的管 ...
- Git与GitHub学习笔记(八)git如何同时同步提交到码云和GitHub上
前言: 今天github push代码一直push不上去,打算就备份一份代码带国内开源码云上. Github容易出现的情况是: 国内访问速度比较慢, 如果被墙掉的话,就直接没发使用了 如果开源个PHP ...
- Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法
Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法 1.git在本地的电脑创建了仓库,要远程同步github的仓库.使用 ...
- Idea中通过Git将代码同步到GitHub
一.Idea中配置Git 点击IntelliJ IDEA->Preferences...->Version Control->Git->Path to Git executab ...
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
- 转:sublime上使用git连接github
"工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...
- git与github使用
Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...
- linux下git以及github的连接与使用
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...
随机推荐
- write(byte[] b, int off, int len)
write(byte[] b, int off, int len)就是将数组 b 中的 len 个字节按顺序写入输出流. 所以如果 b 为 null,则抛出 NullPointerException. ...
- TestStack.White安装详解
一.安装 NuGet TestStack.White是通过NuGet进行安装的.NuGet最低支持VS2010.我使用的VS2015. 安装方式一 :从Visual Studio的工具->扩展和 ...
- MultipartFile 图片上传到Linux服务器Tomcat下的webapps目录
第一次接触 linux 服务器,做图片上传的时候遇到了些坑,搞了些天总算成功了,记录一下 /** * 上传图片 * * @param request * @param file * @return * ...
- jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传
jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...
- H5rem
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, ...
- python 装饰器 对类和函数的装饰
#装饰器:对类或者函数进行功能的扩展 很多需要缩进的没有进行缩进'''#第一步:基本函数def laxi(): print('拉屎')#调用函数laxi()laxi() print('======= ...
- QTP 保留对象
1. 常用保留对象(Utility Objects) 保留对象:所谓QTP保留对象就是QTP本身预留的一些可用对象. 通俗些讲就是,当打开QTP时它就已经把这些对象给实例化了,直到关闭QTP后,这些保 ...
- 后台获取html控件的值
string name = Request.Form["Name1"].ToString(); “xxx” 里的是name值 Request["xx"]取到相同 ...
- luoguP2184 贪婪大陆 题解(树状数组)
P2184 贪婪大陆 题目 其实很容易理解就是询问一段区间内有多少段不同的区间 然后再仔细思索一下会发现: 1.只要一个区间的开头在一个节点i的左边,那么这个区间包含在区间1~i中. 2.只要一个区 ...
- 如何多个router 进行合并?
有时间可能有多个人开发,如果在共用router, 势必会造成合并冲突,可以分开多个router.js ,然后进行合并 // router0.jsconst studyRouter = [ { path ...