• 【Git入门之六】远程仓库


    【Git入门之六】远程仓库 - JackyStudio - 博客频道 - CSDN.NET

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

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



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

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

     

    [cpp] view
    plain
    copy
     
    1. #1个点表示当前目录,2个点表示父目录  
    2. $Snbsp;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. $Snbsp;echo "HelloRemoteJackyRepo" > JackyData01  
    3.   
    4. #提交更改  
    5. $Snbsp;git commit -a -m "modify to remotejackyrepo"  
    6. [master e14f4a3] modify to remotejackyrepo  
    7.  1 file changed, 1 insertion(+), 1 deletion(-)  
    8.   
    9. #推送到远程仓库  
    10. $Snbsp;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. $Snbsp;git remote add testremote ../remote-jackygit.git  

    4.查看远程仓库信息

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

     

     
    1. #查看远程仓库  
    2. $Snbsp;git remote  
    3. testremote  
    4.   
    5. #查看远程仓库详细信息  
    6. $Snbsp;git remote -v  
    7. testremote      ../remote-jackygit.git (fetch)  
    8. testremote      ../remote-jackygit.git (push)  
    9.   
    10. #查看远程仓库详细信息  
    11. $Snbsp;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. $Snbsp;cd ..  
    3.   
    4. #新建jackygit2目录  
    5. $Snbsp;mkdir jackygit2  
    6.   
    7. 进入jackygit2目录  
    8. $Snbsp;cd jackygit2  
    9.   
    10. #将远程仓库克隆到当前目录(jackygit2)  
    11. $Snbsp;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. $Snbsp;echo "Hi Jackygit2" >jackydata01  
    3.   
    4. #提交更改  
    5. $Snbsp;git commit -a -m "hi jackygit2"  
    6. [master 6937dbd] hi jackygit2  
    7.  1 file changed, 1 insertion(+), 1 deletion(-)  
    8.   
    9. #推送到远程仓库,这里就可以直接使用testremote  
    10. $Snbsp;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从远程仓库中拉取最新版本。

    [cpp] view
    plain
    copy
     
    1. #进入jackygit2目录  
    2. $Snbsp;cd ../jackygit2  
    3.   
    4. #拉取远程仓库最新版本  
    5. $Snbsp;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. $Snbsp;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  
  • 相关阅读:
    【LeetCode-动态规划】编辑代价
    【C++】使用istringstream分割字符串
    【LeetCode-字符串】简化路径
    【LeetCode-字符串】简化路径
    【LeetCode-并查集】朋友圈
    【LeetCode-背包】目标和
    【LeetCode-动态规划】分割等和子集
    The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes
    【错误解决】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止
    MySQL解压版安装配置详解
  • 原文地址:https://www.cnblogs.com/seven1979/p/4257299.html
Copyright © 2020-2023  润新知