git 入门三 (远程、标签)
 
  分布式版本控制管理系统本地仓库和中心服务器仓库数据是本地的镜像仓库,中心服务器数据仓库的是为了多用户数据合并和获取同步的中心,多人协作需要管理这些远程仓库,以便推送和拉去数据,汇总各自项目的进度和工作成果。管理远程仓库的工作添加远程库,废弃远程库,管理远程分支管理等等。每次用户从中心服务器拉去文件不仅仅是最新版本的文件数据,同事还包含了所有历史数据,现在我们来看看远程服务器数据仓库的使用。我们已github 测试项目作为远程服务器数据仓库作为操作环境。

 
1、克隆一个仓库
 
$ git clone git@github.com:andy/test.git
Cloning into 'test'...
remote: Reusing existing pack: 4, done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), done.
$ git remote
origin
 
$ git remote -v
gshell  https://gitshell.com/andy/test.git (fetch)
gshell  https://gitshell.com/andy/test.git (push)
origin  git@github.com:andy/test.git (fetch)
origin  git@github.com:andy/test.git (push)
 
 
$ cat .git/config
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:andy/test.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "gshell"]
        url = https://gitshell.com/andy/test.git
        fetch = +refs/heads/*:refs/remotes/gshell/*
 
2、添加远程仓库
 
git remote 可以查询远程仓库简短名称,在克隆某个项目后,至少可以看到可以名为origin的远程库,git用这个默认标识你克隆的原始仓库。我们现在也可以添加一个新的仓库。从远程仓库获取数据git fetch remote-name,会从远程数据仓库拉去你本地没有的数据,拉去完成后,可以和你本地的一个分支做合并,开始我么克隆一个仓库,系统会默认把仓库归于origin名下,git fetch origin 会抓取你从上次更新以来有别人更新到服务器的新内容,fetch只是从远端的数据拉取到本地仓库,并不合并到当前工作分支。只有使用 git pull origin 命令会自动抓取数据下来,然后将远端分支自动合并到本地仓库中的当前分支,日常工作中都这样使用,又快有好。
 
$ git remote add gitcsdn  git@code.csdn.net:andy_yyf/test.git
 
$ git remote -v
gitcsdn git@code.csdn.net:andy_yyf/test.git (fetch)
gitcsdn git@code.csdn.net:andy_yyf/test.git (push)
gshell  git@gitshell.com:andy/test.git (fetch)
gshell  git@gitshell.com:andy/test.git (push)
origin  git@github.com:andy/test.git (fetch)
origin  git@github.com:andy/test.git (push)
 
 
$ git fetch gshell
From gitshell.com:andy/test
 * [new branch]      master     -> gshell/master
 
 
3、推送数据到远程仓库
 
 在工作中项目开发完成部分,需要推送到远程服务器和大家合并共享工作内容。需要将本地仓库数据推送到远程仓库,实现这个命令和简单,
git pull remote-name branch-name ,如果被本地分支master 分支推送到origin 服务器上。只要在中心服务器有权限,或者同一时候没有其他人也在推送数据,或者从最近推送或获取后有其他人以后更新,可以直接推送到远程仓库,如果别人已有更新,需求把远程更新的数据抓取到本地合并后再推送。
 
 
$ git push
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 330 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:andy/test.git
   7b26911..894ed8b  master -> master
 
$ git push gshell
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 330 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitshell.com:andy/test.git
   7b26911..894ed8b  master -> master
 
$ git push gitcsdn
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 330 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@code.csdn.net:andy_yyf/test.git
   7b26911..894ed8b  master -> master
 
 
4、查看远程仓库信息

  
查看远程仓库信息 git remote show remote-name ,查看某个远程仓库的详细信息,
 
    $ git remote show origin
* remote origin
  Fetch URL: git@github.com:andy/test.git
  Push  URL: git@github.com:andy/test.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
 
5、远程仓库本地配置别别名修改
 
远程仓库本地.git/config 配置文件中本地短名称修改 git remote rename oldname newname.远程仓库有变化,如远程的镜像不再使用,或者原来的克隆不再使用,需要异常远端仓库,可以git remote rm 命令。  通过本地修改本地配置文件,需求修改文件内容存放在.git/config 的文件中。
 
$ git remote rename gitcsdn gcsdn
 
$ cat .git/config
 
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:andy/test.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "gshell"]
        url = git@gitshell.com:andy/test.git
        fetch = +refs/heads/*:refs/remotes/gshell/*
[remote "gcsdn"]
        url = git@code.csdn.net:andy_yyf/test.git
        fetch = +refs/heads/*:refs/remotes/gcsdn/*
 
$ git remote rm gshell
 
$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:andy/test.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "gcsdn"]
        url = git@code.csdn.net:andy_yyf/test.git
        fetch = +refs/heads/*:refs/remotes/gcsdn/*
  
6、标签
 
版本打标签是在某一个版本发布或者对应的提交上打标签,git tag  tagName 命令是打标签的命令,带有备注信息的标签需要 git  tag -a v1.0 -m "xxxx" 的标签,标签使用有两种类型,前一种是轻量级(lightweight) 和含付注释的(annotated),轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含付注释的标签,实际上是在存储仓库中的一个独立对象,对象存放在.git/objects/中,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许GNU privacy Guard(GPG)来签署或验证。一般我们都使用含有付注释型的标签,以便保留相关信息,当然如果只是临时性的添加标签,或者不需要添加额外信息,就可以用轻量级的标签。用git show 可以查看提交对象信息上,列出了标签的提交者和提交时间,以及标签的说明。
 
$ git tag -a v1.0 -m"it the tag v1.0"
 
$ git tag
v1.0
 
$ git show v1.0
commit 894ed8b9883fac03c386d2d26317375797853586
Author: andy <andy@gmail.com>
Date:   Mon Mar 10 16:46:50 2014 +0800
 
    local 2st commit“
 
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..c261c57
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1 @@
+git introduction
 
版本提已提交到仓库,或者某个历史提交记录上打标签,也可以打标签,只需要在标签后加上对应的校验和,如下后补上上标签:
 
$ git tag v1.1.1 2e9cc
 
$ git show v1.1.1
commit 2e9cc04f50e000d5280979348e7084afcb9d35f2
Author: andy <andy@gmail.com>
Date:   Mon Mar 10 22:19:03 2014 +0800
 
     3rd commit
 
diff --git a/readme.txt b/readme.txt
index c261c57..2b92ac4 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
 git introduction
+the current release version 1.8.0
 
 
标签只会保存在本地,暂存区对象也是只保存在本地,在推送仓库的时候不会推送到远程服务器上,标签可以推送到远程服务器,需要通过显式命令才能将标签签到远程仓库,其命令方式犹如推送分支,运行git push origin tagname,推送本地所有标签 --tags,其它人在拉取数据的时候也会看到对推送到服务器的标签。
 
$ git push origin v1.1.1
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 287 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:andy/test.git
 * [new tag]         v1.1.1 -> v1.1.1
 
$ git push origin --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 148 bytes, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:andy/test.git
 * [new tag]         v1.0 -> v1.0
 * [new tag]         v1.1 -> v1.1
 
 
 
git 基本操作,创建和克隆仓库,更新,暂存和克隆仓库,暂存并提交更新等,以及查看历史更新记录等。
 
 
 
 
 
 
 
 
 
 
 
 
 

git入门三(远程、标签)的更多相关文章

  1. git入门 创建版本库, 版本管理 分支 标签

    参考: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 GIT最流行的分布式版本 ...

  2. git 入门教程之里程碑式标签

    "春风得意马蹄疾,一日看尽长安花",对于项目也是如此,最值得期待的恐怕就要数新版本发布的时刻了吧?每当发布新版本时要么是版本号命名(比如v0.0.1)或者代号命名(比如Chelse ...

  3. Git入门——远程仓库及分支管理

    关于本地版本库的操作,请见:Git入门--本地版本库操作 本篇提到的所有命令: 小结 前面提到,Git相对于传统的SVN有着很大的优势,其中之一就在于集中式系统中,版本库只能存在于中央服务器上:而在G ...

  4. git 学习使用总结三(远程仓库操作)

    这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. pull, fetch, clone, push, chec ...

  5. [置顶] 【Git入门之十一】标签管理

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309731 标签是啥?标签就是给某个版本的一个标记. 1.为当前版本创建标 ...

  6. GIT入门笔记(18)- 标签创建和管理

    git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id: git tag -a <tagname> -m "blablabla ...

  7. git 入门教程之本地和远程仓库的本质

    本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑. 远程仓库不一定非得是 github 那种专门的"中央服务器",甚至局域网的另外一台电脑也可以充当&q ...

  8. Git(三)Git的远程仓库

    一. 添加远程库 现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份.常用的远程仓库就是github:https://g ...

  9. Git 推送和删除远程标签

    事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs: git push origin 标签名 相当于 git push origin refs/tags/源标签名 ...

随机推荐

  1. xcode里面使用Memory Leaks和Instruments检测内存泄漏

    教程截图: 作为一名无证程序员,无论你多么精通Objective-C的内存管理,随着时间的推移,你也不可避免的犯内存相关的错误.但通常因为代码量太大,以至于你不可能一行一行的去排除(等你解决完,你设计 ...

  2. [Bug] 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”

    This is very easy to do. Open your build definition and go to the "Process" page. Then und ...

  3. 使用echarts简单制作中国地图,echarts中国地图

    网站需要一张中国地图,并且鼠标经过某个省份,该省份的省份名字显示,而且该省份的地区会变色显示. 第一种方法: 将每个省份的图片定位(先隐藏),拼合成一张中国地图,然后再定位省份名称,鼠标经过省份名字, ...

  4. 2017.4.18 linux中执行某文件提示权限不够

    因为没有对start.sh文件的执行权限,所以提示权限不够. 加一个执行权限: chmod +x start.sh 可以看到,执行权限已经有了.此时再执行,就ok了.  

  5. 转: Eclispe的远程开发

    from: http://www.thinksaas.cn/topics/0/528/528009.html 新项目中用到了所谓的Eclipse远程开发.参考: http://www.eclipse. ...

  6. Centos 7 联想Y430P无线网卡驱动安装 过程参考

    Centos 7  联想Y430P无线网卡驱动安装 过程参考 ABRT 已检测到 [root@endv ~]# yum install -y rdesktop 已加载插件:fastestmirror, ...

  7. centos 7 查看系统/硬件信息及运维常用命令+联想Y430P无线网卡驱动安装

     centos 7 查看系统/硬件信息及运维常用命令 当前环境:联想Y430P  CentOS 7.3 [root@yan-001 ~] # uname -a # 查看内核/操作系统/CPU信息的Li ...

  8. android中非堵塞socket通信

    1.什么是同步与异步,堵塞与非堵塞 首先我们要明确搞明确:同步就等于堵塞?异步就等于非堵塞?这是不正确的,同步不等于阻 塞.而异步也不等于非堵塞. 1)那什么是同步编程? 什么是同步,就是在发出一个功 ...

  9. 块设备驱动之NOR FLASH驱动

    转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240947 一.硬件原理 从原理图中我们能看到NOR FLASH有地址线,有 ...

  10. 【Excle数据透视表】如何在数据透视表中使用合并单元格标志

    先有数据透视表如下: 现在看着这个格式不舒服,我们希望调整成如下这种样式 步骤 单击数据透视表任意单元格→右键→数据透视表选项→布局和格式→合并且居中排列带标签的单元格 注意:如果数据透视表报表布局不 ...