Git基础(三)
本章 就开始和大家一起学习第三块内容:远程仓储的使用操作。要参与任何一个 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基础(三)的更多相关文章
- git基础及分支
关于版本控制 git是一种分布版本控制系统,每一主机都保存了完整副本.必杀技是分支. 在Windows可安装git客户端msysgit. git基础 第一次看progit觉得有点不懂,不懂版本控制,一 ...
- 《Pro Git》笔记2:Git基础操作
第二章 Git基础 Git基础包括:版本库的创建和获取,文件添加修改提交等基本操作,状态查询,远程版本库管理和同步,打标签. 1.取得项目的Git版本库 基于Git的工作流要以Git版本库为基础,即可 ...
- Git详解之二 Git基础
Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...
- 2.4 Git 基础 - 撤消操作
2.4 Git 基础 - 撤消操作 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失 ...
- ###Git 基础图解、分支图解、全面教程、常用命令###
一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...
- Git详解之二:Git基础
Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到 ...
- Git 基础和原理
Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已 ...
- 1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程
1.Git基础 版本控制系统是一种用于记录一个或多个文件内容变化,以便将来查阅恢复特定版本修订情况的系统. Git是一种分布式版本控制系统(Distributed Version Control Sy ...
- git之一: git基础
参考: SourceTree使用 git教程 廖学风git 文档1 文档2 1. git 概念介绍 工作区: 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区,工作区下面有. ...
随机推荐
- Spring Mvc 返回机制
转自:http://jianzh5.iteye.com/blog/1909234 Spring Mvc 有如下的几种返回方式: ModelAndView, Model, ModelMap, Map, ...
- MySQL 5.7 虚拟列 (virtual columns)
参考资料: Generated Columns in MySQL 5.7.5 MySQL 5.7新特性之Generated Column(函数索引) MySQL 5.7原生JSON格式支持 Gener ...
- redis cluster安装部署(测试环境)
redis 应用于web前端,做缓存和数据存取的速度是挺可观的,最近看了一些资料,手痒了,就弄了一个测试环境,两台方案,试用一下. ##Redis 集群部署## 一,方案调研: 参考博客: http: ...
- √新技能Get - 教你发空白朋友圈
今天下午都被空白朋友圈刷屏了.空白朋友圈也即是在朋友圈里面发空消息,没有图片也没有文字,朋友圈动态是空空的.这是谁在恶搞呢?怎么实现呢? 怎么发空消息啊?其实这是为了帮助大家识别身边用iOS的小伙伴的 ...
- ZOJ3231 Apple Transportation(最小费用流)
题目给你一棵苹果树,然后每个结点上有一定的苹果树,你要将苹果运输达到某个状态,使得均方差最小. 将苹果x个从a->b的花费是x*w,w是边权. 当时比赛的时候想的就是,最后达到的状态一定是sum ...
- POJ 2226
Muddy Fields Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7557 Accepted: 2791 Desc ...
- POJ 1338
#include<iostream> #include<stdio.h> #include<iomanip> #define MAXN 100000 using n ...
- Mime Types
Mime Types 1.http://www.freeformatter.com/mime-types-list.html 2.http://www.webmaster-toolkit.com/mi ...
- Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum (数学期望)
题目链接 题意 : 一个m面的骰子,掷n次,问得到最大值的期望. 思路 : 数学期望,离散时的公式是E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn) p(xi)的是 ...
- UVA 11361 - Investigating Div-Sum Property 数位DP
An integer is divisible by 3 if the sum of its digits is also divisible by 3. For example, 3702 is d ...