关于仓库,我们先搞清楚三个概念:本地仓库、远程仓库和上游仓库。本地仓库是从远程仓库clone出来的,远程仓库可以从上游仓库fork出来。这里的clone和fork都是复制的意思,区别是本地和远程都是针对自己的git账号,一对一映射;远程跟上游是针对不同的账号,是多对一的映射。上游仓库类似中心化的SVN服务器,每个分支都可以拉取分支,拿到别人的代码,自己修改后再提交上去。

  1、我们先登陆个人账号,进入想要一起玩的项目ExamDemo,点击Fork拉分叉到自己的git账号下面:

  2、点击Clone or download按钮,克隆个人的远程仓库url,到git bash下用命令行git clone执行克隆操作:

  

wulf@wulf00 MINGW64 /e/workspace
$ git clone https://github.com/wuxun1997/ExamDemo.git

  3、进入本地仓库目录,查看当前远程仓库:

wulf@wulf00 MINGW64 /e/workspace
$ cd ExamDemo/ wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git remote -v
origin https://github.com/wuxun1997/ExamDemo.git (fetch)
origin https://github.com/wuxun1997/ExamDemo.git (push)

  4、因为我们是从中心仓库中拉的分支,为了对中心仓库保持同步,需要设置我们的远程仓库与中心仓库的对接,这里中心仓库是我们的上游仓库:

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git remote add upstream https://github.com/OwenTse/ExamDemo.git

  这里upstream只是一个别名,用来指代上游仓库。这时我们再看下远程仓库,会发现多了两个上游仓库了:

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git remote -v
origin https://github.com/wuxun1997/ExamDemo.git (fetch)
origin https://github.com/wuxun1997/ExamDemo.git (push)
upstream https://github.com/OwenTse/ExamDemo.git (fetch)
upstream https://github.com/OwenTse/ExamDemo.git (push)

  5、接下来的3条命令用来保持本地仓库和上游仓库同步。首先从远程仓库检出最新分支(这里是master分支)到本地仓库:

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git checkout master
Already on 'master'
M src/main/java/example/One.java
Your branch is up to date with 'origin/master'.

  我这里是改动了One.java文件,所以git提示我本地有修改(Modify)文件,但因为我并未提交,所以master依然是最新的。

  6、从上游仓库下载代码到本地仓库:

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git fetch upstream
From https://github.com/OwenTse/ExamDemo
* [new branch] master -> upstream/master

  通过这个命令我们能把别人的最新代码拉取到本地仓库,假如团队里的张三提交了代码,那么这时我们就能取到他的最新代码,并在他的基础上继续开发。

  7、合并本地仓库代码到上游仓库

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git merge upstream/master
Already up to date.

  这里是把本地仓库代码合并到上游仓库,这里提示上游仓库是最新的。

  8、推送本地仓库到远程仓库

wulf@wulf00 MINGW64 /e/workspace/ExamDemo (master)
$ git push origin master
Everything up-to-date

git仓库的更多相关文章

  1. 多本地代码工作点更新到2个远端GIT仓库

    摘要:本文介绍了笔者多个本地工作节点(地方)的多台电脑(PC/笔记本电脑)同步源码到2个远端的GIT(一个GITHUB国外强制公开,一个oschina国内可不公开). 作者:太初 转载说明:请指明原作 ...

  2. Git中如何利用生成SSH个人公钥访问git仓库

    Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...

  3. eclipse连接多个git仓库方法

    只需要在本地建立多个仓库就行,提交的时候一个本地仓库对应一个git仓库

  4. svn 版本迁移到 git 仓库

    1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser ...

  5. git仓库的初始化

    关于git仓库的初始化和git push的操作 git init git remote add origin ssh://myserver.com/home/git/myapp.git git pul ...

  6. xcode 版本控制推送代码到远程git仓库的步骤

    一 代码推送到远程git仓库 1.在git中建立一个下项目(假设项目名称为->Mygit) 2.在xocde上新建一个测试项目(假设项目名称为GitTest) 3.打开电脑终端: 1)首先利用终 ...

  7. 【Git学习笔记】初始化Git仓库和版本回退

    学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...

  8. (转)如何将本地git仓库上传到GitHub中托管+实践心得

    Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...

  9. svn迁移到git仓库并保留commit历史记录

    svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...

  10. 如何在Linux下使用Gitblit工具创建Git仓库服务

    嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性 ...

随机推荐

  1. nyoj——297(期望)

    GoroSort 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 Goro has 4 arms. Goro is very strong. You don't me ...

  2. OGRE渲染流程

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/

  3. C++面向对象高级编程(三)基础篇

    技术在于交流.沟通,转载请注明出处并保持作品的完整性. 概要 一.拷贝构造 二.拷贝赋值 三.重写操作符 四.生命周期 本节主要介绍 Big Three 即析构函数,拷贝构造函数,赋值拷贝函数,前面主 ...

  4. Ubuntu12.04下samba服务器共享配置

    1 . 前置工作 首先保证你的Ubuntu能上网:虚拟机网络连接方式为NAT:虚拟机雨物理机互ping可通: 2. 安装samba sudo apt-get insall samba sudo apt ...

  5. JSON Schema(模式)

    JSON Schema指的是数据交换中的一种虚拟的“合同”. JSON验证器负责验证语法错误,JSON Schema负责提供一致性检验. JSON Schema是数据接收方额第一道防线,也是数据发送方 ...

  6. Java property 的加载读取

    方法一 Properties properties = new Properties(); InputStream stream = PropertiesUtil.class.getClassLoad ...

  7. 将自己的框架更新到cocopods上

    为了更方便的集成第三方框架有了cocopods 的, 当我们有了相对比较好的框架的时候如何更新到cocopods 供他人参考呢? 下面我一步一步带大家开源自己的框架. 第一步 把自己的框架更新到git ...

  8. OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(上)

    什么是SAP Fiori? 了解SAP UI5必须要从SAP Fiori开始,两者概念经常被混淆,而两者也确实有着非常紧密的关系. 用过SAP的同学们都对SAP的传统的界面(SAP GUI)表示“呵呵 ...

  9. HttpUrlConnection使用Get和Post访问服务器的工具类(一)

    首先我们有一个返回响应的接口HttpCallBackListener public interface HttpCallbackListener { void onFinish(String resp ...

  10. 胖AP基本配置:

      配置思路: 先创建wlan并广播ssid 进入射频子接口封装用户vlan 进入射频口关联wlan 注意:03 多个无线信号配置 注:在把AP改为 ap-mode fat后不能退出特权模式,不然需要 ...