关于仓库,我们先搞清楚三个概念:本地仓库、远程仓库和上游仓库。本地仓库是从远程仓库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. nodejs pm2配置使用

    nodejs pm2配置使用教程参考链接:http://www.111cn.net/sys/linux/100927.htm 安装步骤: yum -y install npmnpm install - ...

  2. Exact Change

    设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) 作为第三个参数. cid ...

  3. java程序设计基础篇 复习笔记 第四单元

    1 think before coding code incrementally 2 sentinel value sentinel-controlled loop 3 输入输出重定向 > &l ...

  4. Access control allow origin 简单请求和复杂请求

    原文地址:http://blog.csdn.net/wangjun5159/article/details/49096445 错误信息: XMLHttpRequest cannot load http ...

  5. spring --解析自定义注解SpringAOP(配合@Aspect)

    1:首先,声明自定义注解 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface DtT ...

  6. 初次使用VCS仿真软件

    由于刚开始接触VCS,对于VCS不是太了解,在网上找了很多的资料终于遇到了一个相对比较初级的入门资料,这个资料是以一个简单的4位加法器为例来介绍vcs的用法的,比较好入门,这个文章的地址如下: htt ...

  7. Linux 内核驱动自动创建设备节点并挂载设备

    *注:本文来自http://blog.csdn.net/lwj103862095/article/details/17470573 一.首先需要在最开始定义两个数据结构: static struct ...

  8. 2018.11 企业战略课堂笔记2 SWOT-4C战略

    1因素列表 2分析过程 :重要的是逻辑推理过程 3  4C战略

  9. c# winform捕获全局异常,并记录日志

    using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using ...

  10. 微信小程序页面跳转方法汇总

    微信小程序前端页面跳转有多种方式,汇总如下: Tips: 小程序前端的页面跳转之后,跳转之前的页面并不会凭空消失,而是存进了一个类似“页面栈”的空间里: 只有当这个所谓的“页面栈”满了之后页面才会退出 ...