zoukankan      html  css  js  c++  java
  • Git(二)Git几个区的关系与Git和GitHub的关联

    前言

      前面只是大概的介绍了一点基础的东西,接下来会更加深入的去了解一下Git。

    一、Git的工作区、暂存区和版本库之间的区别和联系

      1)工作区

        在PC中能看得到的创建的一个管理仓库的目录。比如目录下GitTest里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴

        

      2)版本库(repository) 

        工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

        Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个

        指针叫HEAD。

      3)联系

        在初始化git版本库之后会生成一个隐藏的文件 .git ,可以将该文件理解为git的版本库 repository,而我们自己建立的项目文件夹即工作区 working directory ,

        在.git 文件夹里面还有很多文件,其中有一个index 文件 就是暂存区也可以叫做 stage ,git还为我们自动生成了一个分支master以及指向该分支的指针head。   

        

        从图中可以看出来respository包括分支master和stage, working diretory 可以理解为我们打开开发环境如eclipse,里面的内容即工作区的内容,在工作区里面

        有的代码以及配置文件等我们需要提交到版本库里面,最终是到了分支master上面,暂存区只是一个临时保存修改文件的地方

       

        前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

          第一步是:用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

          第二步是:用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

        因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

      4)编写一个Demo

        我们在lance.txt再添加一行内容为eeeeee,接着在目录下新建一个文件为fosun.txt 内容为test,我们先用命令 git status来查看下状态,如下:

        

        现在我们先使用git add . 命令把2个文件都添加到暂存区中,再使用git status来查看下状态,如下:

        

        接着我们可以使用git commit一次性提交到分支上,如下:

        

        注意:当在工作去修改了文件或者新建了文件没有加入到暂存区去时,使用git status显示的是红色的。加入到之后是绿色的了。

    二、远程仓库

    2.1、本地与远程GitHub的配置

      在了解之前,先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要进行简单的设置:

        1)创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,

          如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:

        ssh-keygen  -t rsa –C “youremail@example.com”

        

        id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

        2)登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容。

        

        然后

        

        然后

        

        点击 Add Key,你就应该可以看到已经添加的key。

        

    2.2、添加远程库

      1)需求

        我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,

        这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。

      2)首先,登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。

        

        然后

        

        在Repository name填入GitTest,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

        

        目前,在GitHub上的这个testgit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,

        然后,把本地仓库的内容推送到GitHub仓库。

        现在,我们根据GitHub的提示,在本地的GitTest仓库下运行命令:

        git remote add origin https://github.com/zyh2017/GitTest.git
        git push -u origin master
     

         

        把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程

        由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,

        还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面

        中看到远程库的内容已经和本地一模一样了,上面的要输入github的用户名和密码如下所示:

           

        从现在起,只要本地作了提交,就可以通过如下命令:

        git push origin master

        把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。

    2.3、从远程库克隆

      上面我们了解了先有本地库,后有远程库时候,如何关联远程库。

      现在我们想,假如远程库有新的内容了,我想克隆到本地来 如何克隆呢?

      举个简单的例子:

        1)首先,登录github,创建一个新的仓库GitTest2

        

        结果:

        

        现在,远程库已经准备好了,下一步是使用命令git clone克隆一个本地库了。如下所示:

        执行命令:

      git clone https://github.com/zyh2017/GitTest2.git

        

        结果:

        

      喜欢就“推荐”哦!

     我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan ”
  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/zhangyinhua/p/8099185.html
Copyright © 2011-2022 走看看