本章 就开始和大家一起学习第三块内容:远程仓储的使用操作。要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某 个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分 支,定义是否跟踪这些分支,等等。本章我们将详细讨论远程库的管理和使用。

1.查看远程仓储

项目开发到一定的阶段,就需要将内容提交到某个远程仓储了,有时候你不确定指定仓储的详细信息,这时候 你就需要 使用 git remote 命令。查看当前配置中 有多少了远程仓储,至少有一个 origin,因为这个是 创建仓储或者克隆远程仓储式,git默认配置的仓储名称。担然你是可以改变它的默认配置滴。这个命令没带指定参数情况下,只会列举出远程仓储的简单信息如名称。 但 git remote -v 命令则会罗列出每个远程仓储的详细配置信息 如:

$ git remote -v

origin  git://github.com/wwkai555/TestGit.git 或者 https://github.com/wwkai555/TestGit.git

这样一来,我就可以非常轻松地从这些用户的仓库中,拉取他们的提交到本地。请注意,对于目标远程仓储列出的地址是什么方式如: SSH URL 链接或 https 链接,我们本地也需要使用对应的协议推送数据上去。

以上查看远程仓储都是些基本的信息,如果需要进一步的查看远程仓储的详细配置信息,就必须使用 git remote show [仓储名] 命令,它会列举出详细的配置信息,如:

1

2

3

4

5

6

7

$ git remote show origin

* remote origin

URL: https://github.com/wwkai555/TestGit.git

Remote branch merged with 'git pull' while on branch master

master

Tracked remote branches

maste

除了对应的克隆地址外,它还给出了许多额外的信息。它友善地告诉你如果是在 master 分支,就可以用 git pull 命令抓取数据合并到本地。另外还列出了所有处于跟踪状态中的远端分支。

2.添加远程仓储

开发中,有时候我们需要自己创建特殊仓储添加到远程仓储队列,这时我们就需要使用 git remote add [仓储名] [url],如:

 

$ git remote add rte https://github.com/wwkai555/TestGit.git

$ git remote -v

origin  https://github.com/wwkai555/TestGit.git

rte  https://github.com/wwkai555/TestGit.git

我们可以发现添加之后,再查看时 就发现有两个远程仓储了。

3.从远程仓储中获取数据

协同开发的过程中,我们有时需要同步他人的提交更新。例如:当我们需要提交内容的时候,当相同文件被更其他人更新过,则需要先更新其远程数据到本地,合并后才容许推送到远程仓储,否者推送的时候 就会报错。那么在获取远程仓储数据的方式有两种,第一种:使用 git fetch [仓储名] 命令,获取指定仓储中本地仓储中还没有的内容,运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用第二种方式: git pull 命令 ,它会自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。

4.推送信息到远程仓储

当一切信息都检查无误确定之后,你就可以将其推送到远程仓储了,使用: git push [仓储名] [分支名]命令,但需要推送到远程仓储指定的分支中时就要在该命令后面 加上  分支名了。但是注意一点,只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那 你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。

5.远程仓储的删除和重命名

协同开发的工作中,有时候会遇到远程服务器的迁移或者某个协同的开发者不再协同开发,那么这时候就需要重新配置远程仓储或者删除不再需要的仓储。这是就可以使用 git remote rm [仓储名],它会告诉服务器需要删除该仓储了。当我们需要重命名仓储时,就可以使用  git remote rename [旧的仓储名] [新的仓储名]命令就 OK 啦 。

6.标签

同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节先做个简单的介绍,后续将详细的介绍它,一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。

学到这里呢 ,差不多将Git的常用的基本命名都学完啦,你完全可以去开始自己的Git项目,获取参与他人的项目,体验协同开发的乐趣!下一节,我们将学习 Git的 必杀技能-分支模型!敬请期待吧!嘎嘎!还是那句话,有哪里讲的不对的或者遗漏的还望大家及时提出来啊,共同学习,一起进步!

Git基础(三)的更多相关文章

  1. git基础及分支

    关于版本控制 git是一种分布版本控制系统,每一主机都保存了完整副本.必杀技是分支. 在Windows可安装git客户端msysgit. git基础 第一次看progit觉得有点不懂,不懂版本控制,一 ...

  2. 《Pro Git》笔记2:Git基础操作

    第二章 Git基础 Git基础包括:版本库的创建和获取,文件添加修改提交等基本操作,状态查询,远程版本库管理和同步,打标签. 1.取得项目的Git版本库 基于Git的工作流要以Git版本库为基础,即可 ...

  3. Git详解之二 Git基础

    Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...

  4. 2.4 Git 基础 - 撤消操作

    2.4 Git 基础 - 撤消操作 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失 ...

  5. ###Git 基础图解、分支图解、全面教程、常用命令###

    一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...

  6. Git详解之二:Git基础

    Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到 ...

  7. Git 基础和原理

    Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已 ...

  8. 1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程

    1.Git基础 版本控制系统是一种用于记录一个或多个文件内容变化,以便将来查阅恢复特定版本修订情况的系统. Git是一种分布式版本控制系统(Distributed Version Control Sy ...

  9. git之一: git基础

    参考: SourceTree使用 git教程 廖学风git  文档1 文档2 1. git 概念介绍 工作区: 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区,工作区下面有. ...

随机推荐

  1. PowerDesigner(六)-物理数据模型(PDM逆向工程)(转)

    物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的DBM ...

  2. awk 统计数据在文件中的出现次数

    突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不 ...

  3. spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式

    我们知道,spark中每个分片都代表着一部分数据,那么分片数量如何被确认的呢? 首先我们使用最常见的HDFS+Spark,sparkDeploy的方式来讨论,spark读取HDFS数据使用的是spar ...

  4. 【C++】指针数组和数组指针

    首先的首先,稍微抱怨一下阿里今天的严重失误.说好的晚六点笔试,说好的务必提前半小时到场.六点十五的时候告诉闷在一个大教室里躁动的我们“今天七点半开考,大家先回去吧,七点半再过来”,满脸黑线…等到七点半 ...

  5. hdu 1250 Hat's Fibonacci(java,简单,大数)

    题目 java做大数的题,真的是神器,来一道,秒一道~~~ import java.io.*; import java.util.*; import java.math.*; public class ...

  6. Java获取最后插入MySQL记录的自增ID值方法

    方法一: String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);"; PreparedS ...

  7. 对MySQL DELETE语法的详细解析

    以下的文章主要描述的是MySQL DELETE语法的详细解析,首先我们是从单表语法与多表语法的示例开始的,假如你对MySQL DELETE语法的相关内容十分感兴趣的话,你就可以浏览以下的文章对其有个更 ...

  8. 关于Try/Catch 代码块

    应当放在Try/Catch 代码块中的常见任务包括连接到一个数据库或与其交互.处理文件.调用Web 服务. 老实说,我这人很少有打破沙锅问到底的精神.不过昨晚听一技术人员跟他的项目经理说要在程序中使用 ...

  9. Java IO(一)

       字节流的两个基类: InputStream OutputStream 字符流的两个基类: Reader Writer Writer 先学习一下字符流的特点. 既然IO流是用于操作数据的,那么数据 ...

  10. jmeter中线程之间传递参数

    JMeter 变量作用域局限于所属线程.这样设计是经过深思熟虑的,目的是让测试线程能够独立运转.有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量. 其中一种方法 ...