zoukankan      html  css  js  c++  java
  • git学习简单操作

     一、使用原因及来源

      1. 方便版本控制

      2. 方便多人协助开发

      3. linux之父:Linus  Torvalds

      4. git开发目的:为了辅助Linux内核的开发

      5. Git迅速成为了最流行的分布式版本控制系统

      6. 码云官方网址:https://gitee.com/

      7. git是分布式管理系统,服务端和客户端都有版本控制功能,都能进行代码的提交合并

      8. git是版本控制工具

      9. 工作区 ------------- 暂存区 ----------- 仓库区  ------------- 服务器

    二、下载git

      1.linux下安装git

    sudo   apt-get  install   git

      2.windows下安装git

        1)git 下载官网windows版本网址:  https://gitforwindows.org/

          

          如果说点击Download确下载失败的话,显示如下图:

          

          可以将点击Download后跳转的网址复制,然后下载迅雷,通过迅雷将网址复制后下载即可。

          也可以直接复制该网址链接到迅雷中进行下载:https://github.com/git-for-windows/git/releases/download/v2.22.0.windows.1/Git-2.22.0-64-bit.exe

        2)下载后点击exe文件选择下载位置后一直下一步即可

          

          选择一个位置来安装Git:

          

          接下来一直下一步即可完成安装。

          

          该图片即为安装成功的最后一步。

      3.查看是否安装成功

        1)cmd命令行下输入以下命令

    git  --version

          壹:出现如下返回结果证明安装成功

            

          贰:在电脑桌面上右键,出现如下图所示也代表安装成功

            

            其中我们常用的是Git  Bash  Here,点击后效果图如下:

            

    三、配置git工作空间

      1. 创建文件夹

        

      2. 将文件夹变成仓库

        1)进入该文件夹并右键选择Git   Bash  Here,它将会直接跳转到该文件夹所在位置,(你也可以先打开Git   Bash  Here,再通过cd来进入该文件夹目录)

         

        2)进入该文件夹目录后输入以下命令将该文件夹变成本地仓库文件夹

    git  init

           效果图如下:

           

           则该仓库文件夹创建成功。创建后该文件夹中会生成  .git  的隐藏文件。我们可以通过文件夹选项来显示隐藏的.git文件。

           

           

      3. 配置用户名和邮箱

        1)配置全局个人信息(该信息存储在~/.gitconfig下)

    git  config   --global   user.name   'xiaxia'                # 配置用户名
    git  config   --global   user.email  'xiaxia@qq.com'         # 配置邮箱

        2)配置项目个人信息(该个人信息存储在.git/config目录下)

    git  config   user.name   'xiaoxiao'                         # 配置用户名
    git  config   user.email  'xiaoxiao@qq.com'                  # 配置邮箱   

             壹:效果图如下:

          

         贰:我们可以在.git/config文件中查看到我们保存的个人信息

         

      4.在工作区添加文件

        壹:我们的git管理流程如下:

        

          工作区:(即我们刚刚创建好的仓库文件夹中除了.git文件都是我们的工作区)

          

          版本库:(即通过.git中的文件来进行控制)

          

        贰:在工作区添加文件(直接新建文本文件即可)

          

         叁:将文件提交到暂存区

    git  add  readme.txt      # 通过该命令来将指定文件添加到暂存区(命令行中的readme.txt可以替换成任意你想提交到暂存区的文件名)
    git  add  .               # 一次性将所有改动的文件都添加到暂存区

          

        肆:将该操作添加备注并将暂存区所有文件上传到仓库区作为一个新的版本(git  commit  命令的,-m参数后输入的内容是提交声明)

    git  commit  -m  '创建readme.txt文件'

          

        伍:如果再修改或新的文件上传则重复第贰步到第肆步即可。

      5.查看历史文件操作记录

        壹:通过以下命令来查看历史记录

    git  log      # 查看历史提交记录

        

        贰:通过以下命令来查看历史记录(包括删除等等的全部的操作记录,比git  log命令查询到的记录更多)

    git  reflog    # 查看所有的历史操作记录

        

      6. 版本回退(将我们的已经修改后的最新版本的内容,退回到之前的某一个版本的内容)

        壹:查看当前版本(通过 git  log 我们可以查看到当前使用的版本,并且可以根据我们添加的备注来选择我们想要回退到哪一个版本)

        

        贰:查看我们想要回退的版本的版本号(通过git  reflog我们可以看到所有版本的版本号,我们可以通过备注名判断我们想要回退的版本号,根据版本号来回退版本)

        

        叁:通过(指定版本号)以下命令来进行版本回退

    git  reset   --hard  2d6c47c   # 该命令即为  git  reset   --hard  版本号,版本号是哪个即回退到哪一个版本去

        肆:通过(指定版本次数)以下命令来进行版本回退

    git   reset   --hard   HEAD^   #回退到当前最新的版本的前一个版本
    """
        1.  HEAD    指当前最新版本
        2.  HEAD^   指当前最新版本的前一个版本
        3.  HEAD^^  指当前最新版本的前两个版本,以此类推,想回退第前几个版本就加几个^
        4.  HEAD~1  指当前最新版本的前一个版本
        5.  HEAD~8  指当前最新版本的前八个版本,以此类推,想回退第前几个版本就写几 
    """
    # 例如:
    git   reset   --hard   HEAD^^^^^   #回退到当前最新的版本的第前五个版本
    git   reset   --hard   HEAD~16     #回退到当前最新的版本的第前十六个版本
    

      7. 撤销修改(只有在还没有提交到仓库区的文件内容才能进行撤销,提交到了仓库区,那么内容都可以找回来,这里的撤销是指提交到暂存区,还没有提交到仓库区的内容可以进行撤回到工作区并彻底删除,无法找回)

        1)通过以下命令来查询工作区、暂存区、仓库区三者状态不一样的地方

    git   status   # 该命令来比较工作区、暂存区、仓库区不一样的文件有哪些

           壹:在三者完全一样时显示如下状态

           

           贰:工作区有修改的文件,但是暂存区和仓库区都还没提交显示如下状态

           

           叁:工作区和暂存区文件一样,但是还没提交到仓库区显示如下状态

           

        2)将暂存区的文件退回到工作区(使用git   reset  HEAD  文件名,我们撤销修改能处理也只有这种情况,修改完毕的工作区文件提交到暂存区,但是还没提交到仓库区)

    git  reset  HEAD  readme.text   #将暂存区的文件的修改部分退回工作区

              此时我们可以通过git  status命令来查看状态,我们会发现它已经从上图叁的状态变成了上图贰的状态了,如下:

           

        3)将已经退回工作区的文件更新内容彻底删除(使用git  checkout  文件名,注意该语句只会撤销删除指定的文件名的修改部分)

    git  checkout   readme.txt  # 彻底删除工作区内该文件的修改的部分,且无法删除后无法找回,请慎重使用
    

          彻底删除后效果如下:

          

      8. 文件对比

        1)对应本地仓库与工作区指定文件或文件夹的不同(使用 git  diff  HEAD  文件名)

    git  diff  HEAD  readme.txt   # 对比工作区和仓库区的指定的readme.txt这个文件有哪些不一样的地方
    git  diff  HEAD  --  readme.txt  # 与上面的效果是一样的

           壹:工作区与仓库区的内容完全一样,将不会输入任何内容,效果图如下

           

           贰:工作区与仓库区的内容不一样,效果如下(将会把不同的地方给我们指出来)

           

        2)对比本地仓库各个版本之间的不同(使用git   diff   HEAD  HEAD^  -- 文件名)

    git  diff  HEAD  HEAD^  -- readme.txt   # 对比当前最新版本和当前最新版本的前一版本的readme.txt文件有哪些不同,也可以不指定文件直接对比两个版本

           效果图如下:

           

      9. 删除文件

        1)删除未提交到暂存区和仓库区的文件

            直接右键删除即可,不需要任何其他操作

        2)删除提交到暂存区但未提交到仓库区的文件

            壹:先撤回到工作区

    git  reset  HEAD  新建文件夹  #将我们的新建文件夹这个文件夹退回到工作区

         

            贰:在删除该文件或文件夹(也可以使用rm  文件名这个命令来删除该文件夹,注意如果是文件夹将不能用rm命令,只能右键删除,删除后效果如下)

           (只剩下了未被动的readme.txt文件,新建文件夹已经不存在了)

        3)已经提交到了仓库区,即版本库中(此时想要删除,需要如下步骤,但是注意该次删除后会创建新的版本,原来的那个你想删的版本还是可以找回来的)

                 壹: 在工作区删除该文件或文件夹

            贰: 提交到暂存库使用(git  add  . )命令

            叁: 提交到版本库并备注‘删除了一些内容’,使用( git  commit  -m '删除了一些内容' )命令

  • 相关阅读:
    Java实现 LeetCode 767 重构字符串(ASCII的转换)
    Java实现 LeetCode 767 重构字符串(ASCII的转换)
    Java实现 LeetCode 767 重构字符串(ASCII的转换)
    Java实现 LeetCode 766 托普利茨矩阵(暴力)
    Java实现 LeetCode 766 托普利茨矩阵(暴力)
    Java实现 LeetCode 766 托普利茨矩阵(暴力)
    Java实现 LeetCode 765 情侣牵手(并查集 || 暴力)
    219. Contains Duplicate II
    217. Contains Duplicate
    135. Candy
  • 原文地址:https://www.cnblogs.com/wangyusu/p/11272346.html
Copyright © 2011-2022 走看看