关于仓库,我们先搞清楚三个概念:本地仓库、远程仓库和上游仓库。本地仓库是从远程仓库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. python面试题包含基础和Linux操作以及数据库相关

    今天面试了一家公司,感觉表现的不是很好,记录一下面试的试题. python基础部分 python 是一门什么样的语言面向对象的语言有那些,python的面向对象和Java面向对象的区别 Python是 ...

  2. 微信小程序获取当前页面的路径的方式

    使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面. var pages = getCurrentPages() //获取加载的页面 var cur ...

  3. laravel5.5中查询构造器的使用

    //查询构造器新增数据: public function query1() { /* $bool=DB::table('student')->insert( ['name'=>'小李',' ...

  4. 官方文档-Linux服务器集群系统(一)

    转载-Linux服务器集群系统(一) LVS项目介绍 章文嵩 (wensong@linux-vs.org)2002 年 3 月 本文介绍了Linux服务器集群系统--LVS(Linux Virtual ...

  5. redis的list类型以及其操作

    lists类型 给你个图;' lists类型以及操作List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是每一个子 ...

  6. Python模块化

    在Python中,一个.py文件就称之为一个模块(Module). 模块化的好处: 1.大大提高了代码的可维护性. 2.编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的 ...

  7. Buildroot构建指南--Overview

    使用Buildroot,让嵌入式Linux系统构建更加便捷.本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整. Buildroot是什 ...

  8. HM visual studio编译报错

    今天,编译HM的代码,发现编译报如下错误. error MSB6003: The specified task executable "cl.exe" could not be r ...

  9. postfix邮件服务器搭建01-准备篇

    本系列文章主要介绍linux下主流的开源邮件系统postfix的搭建过程,构建一个通过postfix虚拟用户管理的完整的邮件系统, 该系统包括以下组件: 邮件收发端postfix,dovecot, 邮 ...

  10. python之csv操作问题

    注意注意 写入csv文件 一定要注意 [ ] fileObj = open("fileName","w+") file = csv.writer(fileObj ...