什么是Git?

Git是一种项目的版本控制工具,以分布式方式管理项目
同样的项目管理工具,比较流行的有SVN,它属于集中版本控制系统

Bash & CMD & GUI

Git Bash,Git CMD,Git GUI,是三种Git操作的三种方式,一般我们选择用Git Bash

Git Bash:Linux风格的命令行
Git CMD: Windows风格的命令行
Git GUI: 图形化界面的Git操作

基本的Linux命令

因为我们一般使用Git Bash,所以我门要对Linux操作有一定的了解:

  • cd …意思是:退到上一级目录(注意:cd与…之间有一个空格)
  • cd意思是:跳转到指定目录,可以是绝对位置,也可以是相对位置(注意:cd与路径之间,同样有一个空格)
  • pwd意思是:直接显示当前路径
  • ls(-l)意思是:列出当前目录下的所有文件,括号内的ll为可选项,意思是展示信息更加详细
  • touch xx.txt意思是:创建一个为xx.txt的文件
  • rm xx.txt意思是:删除文件名为xx.txt的文件
  • mkdir xx意思是:创建一个名字为xx的文件夹
  • rm -r xx意思是:删除一个名字为xx的文件夹,注意rm与-r之间有空格,-r与xx之间也有空格
  • mv xx.js yy意思是:移动当前目录下的xx.js的文件到yy文件夹
  • reset意思是:重新初始化终端,与clear效果其实是一样的
  • clear意思是:清屏,在windows下为cls
  • history意思是:查看历史命令
  • help意思是:帮助
  • exit意思是:退出
  • #意思是:注释

Git的必要配置

  • git config -l意思是:查看当前git的配置
  • git config --system --list:意思是:查看系统所配置的一些信息
  • git config --global --list:意思是:查看全局的用户配置的一些信息
  • git config --global user.name "XXX"意思是:设置全局用户名为XXX
  • git config --global user.email "111@qq.com"意思是:设置全局用户邮箱为111@qq.com

Git原理

工作区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
在这里插入图片描述

Workspace:工作区,就是你平时存放项目代码的地方
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

本地的三个区域确切的说应该是git仓库中HEAD指向的版本
在这里插入图片描述

Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
.git:存放Git管理信息的目录,初始化仓库的时候自动创建。
Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

工作流程

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
在这里插入图片描述
图解教程
在这里插入图片描述

Git相关命令

  • git init意思是:初始化一个git的工作空间
  • git clone [url]意思是:将url内的数据也就是远程仓库,加载到本地工作空间
  • git status意思是:查看当前状态
  • git add .意思是:将所有文件从工作空间加载到暂存区
  • git commit -m "new file xx.txt"意思是:提交暂存区的内容到本地仓库
  • ssh-keygen -o意思是:在找不到ssh文件的时候,自动生成.ssh文件夹

参考文献

https://www.cnblogs.com/best/p/7474442.html#_lab2_2_0
https://www.bilibili.com/video/BV1FE411P7B3?p=5&spm_id_from=pageDriver

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐