Git分布式管理-头歌实验远程版本库

03-10 8196阅读 0评论

Git的一大特点就是,能为不同系统下的开发者提供了一个协作开发的平台。而团队如果要基于Git进行协同开发,就必须依赖远程版本库。远程版本库允许,我们将本地版本库保存在远端服务器,而且,不同的开发者也是基于远程版本库进行协同开发。因此,远程版本库的各种操作,在Git的使用中至关重要。

一、clone远程版本库

任务描述

当你刚进入到一个开发团队中,你要做的第一件事情,可能就是获取一份项目的源代码。如果你的团队使用Git,进行版本控制和代码管理的话,你的leader很可能会给你一个类似于https://sample.git的地址。不要惊慌,这很可能就是你们项目的远程版本库地址,通过它你就可以获取到完整的源代码库。

本关任务:clone指定的远程版本库到本地。

相关知识

克隆操作

克隆,顾名思义,就是要获取远程版本库的完整拷贝。通过克隆操作,你可以将整个远程版本库的各种细节复制到本地,并且会建立起本地版本库和远程版本库的对应关系。

克隆操作需要用到的命令是git clone,它的具体用法如下所示:

git clone https://sample.git

通过这样的操作,就能将远程版本库复制到本地了,而且会默认克隆到sample文件夹下(对应于远程版本库地址中指定的sample)。同时,你也可以根据需要,指定克隆到其他目录下,其命令格式为:

git clone xxx.git "指定目录"

这样就能将代码都复制到指定目录下。

Git服务器

在团队开发中,我们必须选用一台主机做为Git服务器来存放远程版本库。这样团队中的每个开发者,就可以基于一个共同的远程版本库进行开发。目前提供代码托管(即可以将远程版本库存放于其上的)的平台有Github、码云等,同时我们也可以搭建一台私有的运行Git的服务器,来做为远程Git服务器。Github等平台的使用,及本地Git服务器的搭建,会在后续的实训中具体介绍。本地Git服务器,可以配置不同的连接方式,如shell、git或bash。为了给挑战者提供一个便利的实训环境,我们为每个人配置了一台本地Git服务器,并允许以bash方式进行操作,即可以通过类似于/home/sample.git这种形式的地址,做为远程仓库地址进行操作,而不是像https://sample.git这种形式。

编程要求

#请在下面的Begin/End内填写语句以将远程版本库clone到本地
#********** Begin **********#
git clone /tmp/sample.git
#********** End **********#

 二、添加远程版本库-git remote add

任务描述

现在你要自己启动一个项目了,你需要将你的代码保存到远程版本中。那么你要做的第一件事就是,需要为你的本地版本库添加一个远程仓库,然后整个团队才能基于这个远程版本库进行协同开发。 本关任务:创建一个本地版本库,并为其添加远程仓库。

相关知识

添加远程版本库需要用到的命令是git remote add,其命令格式为:

git remote add “远程仓库名” “远程仓库地址”

使用示例如下:

git remote add origin https://sample.git

这样就将https://sample.git添加为远程仓库,并将其命名为origin。 ###编程要求 本关的编程任务是,补全右侧代码片段中Begin至End中间的脚本。通过执行你所编写的脚本,来完成为本地仓库添加远程仓库的任务。远程仓库的地址为/tmp/sample.git。具体要求如下:

  • 创建一个本地版本库;
  • 为创建的本地仓库添加远程仓库,且将其命名为git。
    #创建gitTrainging文件夹
    mkdir gitTraining
    #进入到gitTraining文件夹
    cd gitTraining
    #将gitTraining初始化为一个本地仓库
    git init
    #请在下面的Begin/End内填写语句添加符合要求的主机名和远程仓库
    #********** Begin **********#
    git remote add git /tmp/sample.git
    #********** End **********#

     三、推送本地内容到远程仓库-git push

    任务描述

    在团队开发中一个很频繁、很普通的行为,就是将你的修改推送到远程仓库,以便于测试或者和团队中其他人协作。

    本关任务:创建本地仓库仓库并添加远程主机,然后创建helloGit.txt文件,并向其中写入“Hello,Git!I am coming”,最后将其推送到远程仓库的master分支。

    相关知识

    推送本地内容时,会将所有未推送至远程仓库的内容,都提到远程仓库。它用到的命令是git push,使用方法如下:

    git push 远程仓库名 本地分支名 远程分支名

    具体的使用方法如下:

    git push origin master master

    这样就将本地分支的内容,推送到远程仓库origin的master分支了。 git push的另外一种用法如下:

    git push -u 远程仓库名 本地分支名 远程分支名

    -u参数的作用是,建立起本地master分支和远程master分支之间的对应关系,下一次如果再推送master分支,就可以忽略远程分支名了,如下所示:Git分布式管理-头歌实验远程版本库 第1张

    编程要求

    本关的编程任务是,补全右侧代码片段中Begin至End中间的脚本。通过执行你所编写的脚本,完成将本地内容推送到远程仓库的操作。具体要求如下:

    • 创建本地仓库gitTrainging;
    • 添加远程仓库/tmp/educoder.git,并将其命名为git;
    • 创建helloGit.txt文件,并将其添加到本地仓库;
    • 将helloGit.txt推送到远程仓库。
      #创建gitTraining目录
      mkdir gitTraining
      #进入gitTraining目录
      cd gitTraining
      #将gitTraining初始化为一个本地仓库
      git init
      #创建helloGit.txt
      touch helloGit.txt
      #添加远程仓库
      git remote add git /tmp/educoder.git
      #将helloGit.txt添加到暂存区
      git add helloGit.txt
      #将helloGit.txt提交到本地仓库
      git commit -m "hello Git!"
      #请在下面的Begin/End内填写语句,将本地master分支的修改推送到
      #远程仓库的master分支
      #********** Begin **********#
      git push git master
      #********** End **********#

       四、拉取远程分支到本地-git pull

      任务描述

      在前三个关卡,我们已经学习了,如何克隆版本库、添加远程仓库及推送本地内容到远程分支这三种操作。那么在团队协作中,如果别人对项目做了修改,而你需要将这些修改合并到你本地时,该怎么做呢?

      本关任务:将远程分支内容拉取到本地。

      相关知识

      拉取远程仓库的内容到本地,需要使用git pull命令,其命令格式为:

      git pull 远程主机名 远程分支名 本地分支名

      其使用示例如下

      #将远程仓库origin的master分支的内容拉取到本地master分支
      git pull origin master:master

      但是,在使用过程中,也可能会出现一种情况:远程分支和本地分支对同一内容做了修改,这就会导致将远程分支的修改,合并到本地分支的时候发生冲突。这个时候,可以选择解决冲突,然后合并(解决冲突会在后续的实训中介绍)。也可以选择直接强制拉取,使用远程分支的修改,覆盖本地分支的修改。强制拉取需要用到-f参数,语法格式如下:

      git pull 远程主机名 远程分支名 本地分支名 -f

      具体的使用示例如下:

      #将远程仓库origin的master分支的内容拉取到本地master分支
      git pull origin master:master -f

      编程要求

      本关的编程任务是,补全右侧代码片段中Begin至End中间的脚本。通过执行你所编写的脚本,来完成拉取远程分支内容到本地的任务。具体要求如下:

      • 创建本地仓库gitTraining;
      • 添加远程仓库/tmp/educoder.git;
      • 拉取远程仓库的master分支到本地。
        #创建gitTraining目录
        mkdir gitTraining
        #进入gitTraining目录
        cd gitTraining
        #将gitTraining初始化为一个本地仓库
        git init
        #创建helloGit.txt
        touch helloGit.txt
        #添加远程仓库
        git remote add git /tmp/educoder.git
        #请在下面的Begin/End内填写语句以拉取远程仓库git的master分支内容到本地
        #********** Begin **********#
        git pull git master
        #********** End **********#

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,8196人围观)

还没有评论,来说两句吧...

目录[+]