【Git入门之六】远程仓库

原创 2013年10月04日 08:17:28

原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12271839


远程仓库是用来把Git仓库托管到互联网,本地网络或者本机中。

本文主要介绍在本机中创建远程仓库(Remote repositories)。


1.创建一个本地远程仓库

使用git clone --bare来创建一个本地远程仓库。

  1. #1个点表示当前目录,2个点表示父目录  
  2. $ git clone --bare . ../remote-jackygit.git  
  3. Cloning into bare repository '../remote-jackygit.git'...  
  4. done.  
然后就可以看到父目录下有个文件夹remote-jackygit.git,里面包含了原来版本库中的.git文件夹。

那工作区文件呢?一个标准的git仓库包含了源代码和历史信息,因为我们可以在上面直接修改代码。但是远程仓库只有历史信息,并没有源代码。


2.推送更改到远程仓库

使用git push推送到远程仓库

  1. #修改Jackydata01  
  2. $ echo "HelloRemoteJackyRepo" > JackyData01  
  3.   
  4. #提交更改  
  5. $ git commit -a -m "modify to remotejackyrepo"  
  6. [master e14f4a3] modify to remotejackyrepo  
  7.  1 file changed, 1 insertion(+), 1 deletion(-)  
  8.   
  9. #推送到远程仓库  
  10. $ git push ../remote-jackygit.git  
  11. Counting objects: 5, done.  
  12. Delta compression using up to 2 threads.  
  13. Compressing objects: 100% (2/2), done.  
  14. Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.  
  15. Total 3 (delta 1), reused 0 (delta 0)  
  16. To ../remote-jackygit.git  
  17.    03150c9..e14f4a3  master -> master  

3.添加远程仓库

我们可以用URL来表示一个远程仓库,但是如果这个URL很长,每次推送岂不是很麻烦。所以可以在添加远程仓库的时候顺便给它取个名字。

添加远程仓库使用git remote add。这里我们给这个远程仓库取名叫testremote,以后我们就可以用testremote来替代remote-jackygit这个远程仓库了。

  1. #添加一个远程仓库,取名为testremote  
  2. $ git remote add testremote ../remote-jackygit.git  

4.查看远程仓库信息

这里使用git remote,git remote -v和git remote show即可。

  1. #查看远程仓库  
  2. $ git remote  
  3. testremote  
  4.   
  5. #查看远程仓库详细信息  
  6. $ git remote -v  
  7. testremote      ../remote-jackygit.git (fetch)  
  8. testremote      ../remote-jackygit.git (push)  
  9.   
  10. #查看远程仓库详细信息  
  11. $ git remote show testremote  
  12. * remote testremote  
  13.   Fetch URL: ../remote-jackygit.git  
  14.   Push  URL: ../remote-jackygit.git  
  15.   HEAD branch: master  
  16.   Remote branch:  
  17.     master tracked  
  18.   Local ref configured for 'git push':  
  19.     master pushes to master (up to date)  

5.克隆仓库

把一个远程仓库克隆到本地,,还是一样使用git clone命令。

  1. #返回上级目录  
  2. $ cd ..  
  3.   
  4. #新建jackygit2目录  
  5. $ mkdir jackygit2  
  6.   
  7. 进入jackygit2目录  
  8. $ cd jackygit2  
  9.   
  10. #将远程仓库克隆到当前目录(jackygit2)  
  11. $ git clone ../remote-jackygit.git .  
  12. Cloning into '.'...  
  13. done.  

不过这回源码和历史记录都会被克隆进jackygit2中,并且remote-jackygit也是jackygit2的远程目录,初始名字为origin。


6.Push和Pull

这时我们有3个仓库了。2个本地仓库(jackygit和jackygit2),1个远程仓库(remote-jackygit)。

如果我们修改了jackygit,那么jackygit2怎么才能获取到最新的版本呢?

(1)Push:jackygit先将修改内容推送给远程仓库。

  1. #修改JackyData01内容  
  2. $ echo "Hi Jackygit2" >jackydata01  
  3.   
  4. #提交更改  
  5. $ git commit -a -m "hi jackygit2"  
  6. [master 6937dbd] hi jackygit2  
  7.  1 file changed, 1 insertion(+), 1 deletion(-)  
  8.   
  9. #推送到远程仓库,这里就可以直接使用testremote  
  10. $ git push testremote  
  11. Counting objects: 5, done.  
  12. Delta compression using up to 2 threads.  
  13. Compressing objects: 100% (2/2), done.  
  14. Writing objects: 100% (3/3), 267 bytes | 0 bytes/s, done.  
  15. Total 3 (delta 1), reused 0 (delta 0)  
  16. To ../remote-jackygit.git  
  17.    8ad0c22..6937dbd  master -> master  
(2)Pull:jackygit2从远程仓库中拉取最新版本。
  1. #进入jackygit2目录  
  2. $ cd ../jackygit2  
  3.   
  4. #拉取远程仓库最新版本  
  5. $ git pull origin  
  6. remote: Counting objects: 5, done.  
  7. remote: Compressing objects: 100% (2/2), done.  
  8. remote: Total 3 (delta 1), reused 0 (delta 0)  
  9. Unpacking objects: 100% (3/3), done.  
  10. From d:/jackygit2/../remote-jackygit  
  11.    8ad0c22..6937dbd  master     -> origin/master  
  12. Updating 8ad0c22..6937dbd  
  13. Fast-forward  
  14.  Jackydata01 | 2 +-  
  15.  1 file changed, 1 insertion(+), 1 deletion(-)  
  16.   
  17. #查看版本库状态,干净的  
  18. $ git status  
  19. # On branch master  
  20. nothing to commit, working directory clean  

7.移除远程仓库

移除远程仓库使用git remote rm即可。
  1. #移除testremote  
  2. $git remote rm testremote  

8.注意

如果在使用git push的时候,出现如下警告:
warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'......
意思是push.default没有设置,使用如下设置即可。作用及其他设置请自行google。

  1. git config --global push.default simple  
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

git和svn比较

1.GIT是分布式的,SVN不是: 这一点绝对是最最关键的重点,与原作者不同,我要特别强调的是这一点对身处大陆的码农们的重要性。为什么?因为人家老外下全套android源码要几个小时,而我们要十几二...

Git版本控制详解

注意:原文地址:http://www.ihref.com/read-16369.html 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中...

SVN和Git 介绍,区别,优缺点,适用范围总结

介绍 SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放...

(译)第三部分:什么是rebase?

内容提要 第一部分:commit hash是什么? 第二部分:merge是什么? 第三部分:rebase是什么? 在第一部分中,我们讨论了什么是commit hash,其中一个很重要的特点就是comm...

【Git入门之十三】Ubuntu和git

之前我们都是在Windows平台下操作git。现在我们改用Ubuntu试一试吧!先准备好Ubuntu或者Linux系统吧。这里采用13.04版本虚拟机环境 1.Ubuntu下使用git 打开终...

简单工厂(Simple Factory)模式的体会

最近在学习《JAVA与模式》这本书。老实说除了有点迷茫,不知所措以外,剩下的就是对总结模式的人的极度赞扬。做JSP开发也将近一年了,大大小小经历了5,6个项目,见了几个别人写的框架,有学校项目组的,有...

git和SVN的区别

1)GIT是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并...

【Git入门之一】Git是神马?

1.Git是神马? 一个开源的分布式版本控制系统,可以有效的高速的控制管理各种从小到大的项目版本。他的作者就是大名鼎鼎的Linux系统创始人Linus。 2.分布式又是神马? 先看看集...

【Git入门之十五】Github操作指南

最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了已介绍过的内容。 1.如何创建一个仓库? 1.1.点击New Repository。 1.2.填写仓库信息,点击Crea...

【Git入门之二】基本术语

工欲善其事必先利其器,首先请原谅我蹩脚的英文翻译。 1.分支(Braches) 一个分支意味着它是一个独立拥有自己历史版本信息的代码线。你可以从已有的代码中生成一个新的分支,这个分支与其余的分支完...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)