版本控制 - Git

Git的使用

  1. Git的历史:Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )需要使用一种进行版本控制的软件而进行开发的Git

  2. Git 和 Svn的使用区别:

    • Svn:是一种集中式的版本控制系统,版本库是集中放置在中央服务器的,在需要使用的时候需要先进行版本的更新(Update)这样集中式的控制系统需要在联网的环境下进行工作,这样的方式使用的是局域网的形式或者是网络的带宽比较高的时候,比较方便,但是网速较慢的情况下就非常的郁闷。另一点缺点就是,集中式的版本控制工具存在着服务器单点故障和容错性查的缺点。
    • GIt:GIt是一种分布式的版本控制系统,这样的话就是没有中央的服务器的,每个使用Git的电脑就是一个完整的版本库,这样的话就不需要使用联网的环境,而进行多人协作的形式,只需要将各自的文件推送给对方,进行修改就行;或者使用远程仓库进行统一的管理。
  3. GIt使用的流程:
    在这里插入图片描述

    • 使用的步骤:
      • 从远程仓库中克隆 Git 资源作为本地仓库。(clone)
      • 从本地仓库中checkout代码然后进行代码修改(checkout)
      • 在提交前先将代码提交到暂存区。(add)
      • 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本(commit)
      • 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库(push)
  4. GIt的安装:

    • GIt工具的安装步骤:(这里是Windows下的安装步骤)
      • 下载:下载的地址
      • 下载完成双击进行安装 (使用默认的选项进行安装即可)
    • 图形化工具TortoiseGit的安装:
      • 下载:下载地址
      • 使用默认的配置进行安装
      • 指定git.exe所在的目录
  5. 使用git进行文件版本的管理:

    • 创建版本库:就像是Maven的本地仓库一样。
      • 什么是版本库:版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。
      • 创建版本库的两种方式:
        • 使用Git bash的形式:
          • 首先是创建一个空的目录
          • 打开创建好的目录,在当前目录下点击右键选择Git bash
          • 使用命令进行版本库创建:git init
        • 使用TortoiseGit的形式:
          • 只需要在新创建的目录上右键点击 :Git 在这里创建版本库 即可
          • 需要注意的是:一般不勾选制作纯版本库
          • 创建完成之后会在 此目录下创建一个.git的隐藏目录
      • 相关概念:
        • 版本库:.git目录就是版本库,将来文件都需要保存到版本库中
        • 工作目录:包含.git目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中(手动创建的哪一个目录)
    • 添加文件:
      • 添加文件的过程:首先是add到暂存区中 在使用commit到版本库中 git 和svn不同的就是有暂存区的概念
      • 添加文件的方式:使用的是TortoiseGit的形式,在工作目录下创建一个文件,选中右键点击TortoiseGit进行添加操作。然后进行提交,将文件保存到版本库中。在这里插入图片描述
      • 执行的过程:
        • git add 实际上就是将文件修改添加到暂存区中
        • 使用git commit 实际上就是将暂存区中的文件全都提交到当前分支 需要注意的是:在进行Git的版本库的创建的时候 会自动的创建唯一的一个分支master git commit就是在向master中进行提交更改
    • 修改文件:修改文件的方式和进行文件的添加时相同的步骤:先进行文件的修改修改完毕之后进行文件的提交
    • 显示日志:进行代码的修改历史,就是在文件右键点击选择显示日志 来进行文件的日志的查看
    • 文件删除:就是使用git的删除功能直接进行删除 选中要删除的文件 点击删除 进行删除 但是这样 版本库中还是没有进行删除 需要在进行提交才能在版本库中进行删除。
  6. Git忽略文件.gitignore

    1. 在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。
      在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。
  7. Git 忽略规则优先级

    在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

    从命令行中读取可用的忽略规则
    当前目录定义的规则
    父级目录定义的规则,依次递推
    $GIT_DIR/info/exclude 文件中定义的规则
    core.excludesfile中定义的全局规则
    
    1. Git 忽略规则匹配语法 在 .gitignore 文件中,每一行的忽略规则的语法如下:

      1. 空格不匹配任意文件,可作为分隔符,可用反斜杠转义
      2. 开头的文件标识注释,可以使用反斜杠进行转义
      3. ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再被包含。可以使用反斜杠进行转义
      4. / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
      5. / 开始的模式匹配项目跟目录
      6. 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不.gitignore 文件中,则相对于项目根目录
      7. ** 匹配多级目录,可在开始,中间,结束
      8. ? 通用匹配单个字符
      9. * 通用匹配零个或多个字符
      10. [] 通用匹配单个字符列表
    2. .gitignore规则不生效

      .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

      解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

      git rm -r --cached .
      git add .
      git commit -m 'update .gitignore'
      

      你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:

      $ git add App.class
      The following paths are ignored by one of your .gitignore files:
      App.class
      Use -f if you really want to add them.
      

      如果你确实想添加该文件,可以用-f强制添加到Git:

      $ git add -f App.class
      

      或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

      $ git check-ignore -v App.class
      .gitignore:3:*.class    App.class
      

      Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

    3. Java项目中常用的.gitignore文件

      # Compiled class file
      *.class
      
      # Eclipse
      .project
      .classpath
      .settings/
      
      # Intellij
      *.ipr
      *.iml
      *.iws
      .idea/
      
      # Maven
      target/
      
      # Gradle
      build
      .gradle
      
      # Log file
      *.log
      log/
      
      # out
      **/out/
      
      # Mac
      .DS_Store
      
      # others
      *.jar
      *.war
      *.zip
      *.tar
      *.tar.gz
      *.pid
      *.orig
      temp/
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打卤面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值