Git概述

286 阅读8分钟

一,Git概述

Git是一个免费的,开源分布式版本控制系统

Git易于学习,占地小,性能快。性能优于Subversion,CVS等版本控制工具。

Git最突出的特性是分支特性

Git在开发中的应用场景为:

  • 备份数据
  • 代码还原
  • 协同开发
  • 追述问题代码的编写人和编写时间

市面上常用的版本控制方式有:

  • 集中式版本控制工具

    例如:CVS,SVN,VSS等就是集中式版本控制工具。

    特点:都有一个单一集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或提交更新。

    优点是每个人都可以在一定程度上看到项目中其他人在做什么,管理员可以轻松掌握每个开发者的权限。

    缺点是如果中央服务器损坏,就无法协同工作。

    工作过程图:

    image-20230926220844949

  • 分布式版本控制工具

    例如:Git,Mercurial等就是常用的分布式版本控制工具。

    特点:分布式版本控制工具,每个电脑都有一个本地库,相当于每台电脑都存有全部的版本信息

    可以从远程代码托管库把代码克隆下来进行版本控制,然后再推送上去。

    优点:

    1. 服务器断网情况下也可开发(因为版本控制是在本地进行的)
    2. 每个客户端都有完整的项目(包括项目的历史记录,更加安全)

    工作过程图:

    image-20230926221324161

二,Git的工作流程

Git的工作流程图如下

image-20230926221536399

命令如下:

  1. clone (克降) : 从远程仓库中克降代码到本地仓库
  2. checkout (检出) :从本地仓库中检出一个仓库分支然后进行修订
  3. add (添加) :在提交前先将代码提交到暂存区
  4. commit (提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch (抓取): 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull(拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. push (推送) :修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

三,Git安装和配置

3.1 Git安装

下载地址:git-scm.com/download

以Windows举例:

  1. 选择安装组件:

    image-20230926222129765

  2. 选择Git默认编辑器

    Git 安装程序里面内置了 10 种编辑器供你挑选,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默认的是 Vim ,选择 Vim 后可以直接进行到下一步,如果想选Notepad++就先去配置Notepad++的环境变量即可

    在 我的电脑->属性->高级系统设置->高级->环境变量->系统变量->Path->编辑 添加 Notepad++ 的安装地址,如 C:\Program Files\notepad++. 这样才能在 Git Bash 里面直接调用 Notepad++.

    image-20230926222230822

  3. 决定初始化新项目(仓库)的主干名字

    第一种是让 Git 自己选择,名字是 master ,但是未来也有可能会改为其他名字;第二种是我们自行决定,默认是 main,当然,你也可以改为其他的名字。一般默认第一种,点击 [next] 到第七步。

    注: 第二个选项下面有个 NEW! ,说很多团队已经重命名他们的默认主干名为 main . 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动,很多人认为 master 不尊重黑人,呼吁改为 main.

    image-20230926222336555

  4. 调整你的 path 环境变量

    image-20230926222358566

    第一种是仅从 Git Bash 使用 Git。这个的意思就是你只能通过 Git 安装后的 Git Bash 来使用 Git ,其他的什么命令提示符啊等第三方软件都不行。

    第二种是从命令行以及第三方软件进行 Git。这个就是在第一种基础上进行第三方支持,你将能够从 Git Bash,命令提示符(cmd) 和 Windows PowerShell 以及可以从 Windows 系统环境变量中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。

    第三种是从命令提示符使用 Git 和可选的 Unix 工具。选择这种将覆盖 Windows 工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话,适合比较懂的人折腾。

  5. 选择SSH执行文件

    image-20230926222442511

    第一种:使用Git自带的OpenSSH

    第二种:使用 TortoisePlink (注,这是一个软件),要使用 PuTTY,请指定 TortoisePlink.exe 的现有副本的路径

    第三种:使用外部 OpenSS

    选默认捆绑的即可

  6. 选择HTTPS后端传输

    image-20230926222615027

    如果在具有企业管理证书的组织中使用 Git,则将需要使用安全通道。如果你仅使用 Git 来访问公共存储库(例如 GitHub ),或者你的组织不管理自>己的证书,那么使用 SSL 后端(它们只是同一协议的不同实现)就可以了

  7. 配置行尾符号转换

    image-20230926222702051

    第一种:签出 Windows 样式,提交 Unix 样式的行结尾。

    第二种:按原样签出,提交Unix样式的行结尾。

    第三种: 按原样签出,按原样提交。

    GitHub 中公开的代码大部分都是以 Mac 或 Linux 中的\n换行。然而,由于 Windows 中是以 \r\n换行的,所以在非对应的编辑器中将不能正常显示。

    Git 可以通过设置自动转换这些换行符。使用 Windows 环境的各位,请选择推荐的 “Checkout Windows-style,commit Unix-style line endings” 选项。换行符在签出时会自动转换为 \r\n,在提交时则会自动转换为 \n 。

    我们是在Windows中使用Git故选第一个!

  8. 配置终端模拟器以与 Git Bash 一起使用

    image-20230926223040001

    第一种:使用 MinTTY(MSYS2的默认终端)

    第二种:使用 Windows 的默认控制台窗口

    建议选择第一种,MinTTY 3功能比 cmd 多,cmd 只不过 比 MinTTY 更适合处理 Windows 的一些接口问题,这个对 Git 用处不大,除此之外 Windows 的默认控制台窗口(cmd)有很多劣势,比如 cmd 具有非常有限的默认历史记录回滚堆栈和糟糕的字体编码等等。相比之下,MinTTY 具有可调整大小的窗口和其他有用的可配置选项,可以通过右键单击的工具栏来打开它们 git-bash

  9. 选择默认的 “git pull” 行为

    image-20230926223212130

    上面给了三种git pull行为:

    • merge=git fetch+git merge
    • rebase=git fetch + git rebase
    • 直接获取=git fetch

    git fetch是拉去远程分支,但是具体是怎么合并是rebase还是merge在做选择的。

  10. 选择一个凭证帮助程序

    image-20230926223456618

    一共两个选项:

    • Git凭证管理
    • 不适用凭证助手

    第一个选项是提供登录凭证帮助的,Git 有时需要用户的凭据才能执行操作;例如,可能需要输入用户名和密码才能通过 HTTP 访问远程存储库(GitHub,GItLab 等等)。

  11. 配置额外的选项

    image-20230926223549893

    有两个选项:

    • 启动文件系统缓存:将批量读取文件系统数据并将其缓存在内存中以进行某些操作,可以显著提升性能。这个选项默认开启。
    • 启动符号链接:符号链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用,类似于 Windows 的快捷方式,不完全等同 类Unix(如 Linux) 下的 符号链接。因为该功能的支持需要一些条件,所以默认不开启
  12. 配置实验性选项

    image-20230926223644034

    这是实验性功能,可能会有一些小错误之类的,建议不用开启。


Git功能介绍:

image-20230926223715355

  1. Git Bash

    Git Bash 是基于CMD的,在CMD的基础上增添一些新的命令与功能,平时主要用这个,功能很丰富,长这样

    image-20230926223803807

  2. Git CMD

    Git CMD 不能说和 cmd 完全一样,只能说一模一样,功能少得可怜,两者如下图:

    image-20230926223810270

  3. Git FAQs

    Git Frequently Asked Questions(常问问题),访问地址:github.com/git-for-win…

  4. Git GUI

    Git GUI 就是 Git 的图形化界面,如下图:

    image-20230926223823089

    可以通过它快速创建新仓库(项目),克隆存在的仓库(项目),打开存在的仓库(仓库)。这个我用的很少,建议还是用命令行学习Git。

  5. Git Release Note: Git Release Note 就是版本说明,增加了什么功能,修复了什么 bug 之类的。


3.2 Git基本配置

  1. 打开Git Bash

  2. 设置用户信息

    git config --global user.name "你的git用户名"
    git config --global user.email "你的邮箱"
    

    查看用户信息

    git config --global user.name
    git config --global user.email
    
  3. 为常用的指令配置别名(可选)

    有些常用的指令参数非常多,每次都要输入好多参数,我们可以使用别名

    1. 打开用户目录,创建.bashrc文件

    2. 在.bashrc文件中输入如下内容:

      #用于输出git提交日志
      alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
      #用于输出当前目录所有文件及基本信息
      alias ll='ls -al'
      
    3. 打开gitBash执行source ~/.bashrc

    4. 解决GitBash中文乱码问题

      • 打开GitBash执行下面命令

        git config --global core.quotepath false
        
      • 在git安装目录下的/etc/bash.bashrc文件最后加上内容:

        export LANG="zh_CN.utf8"
        export LC_ALL="zh_CN.utf8"