欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

爬梯:Git

程序员文章站 2022-07-13 08:35:56
...

学习资料:狂神说

说明:我已经工作了几年再回头重新看一遍git理论知识做的笔记,内容都是基于我自己不理解的情况才写的,很多东西太基础就没写上了。

Git

分布式版本控制器

版本控制器

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

版本控制包括:检入检出控制、分支和合并、历史记录。

常见的版本控制器:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Microsoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制的三种模式:

  1. 本地版本控制:

    在本机记录文件的每次修改,对每个版本保存快照;

    如:RCS;

  2. 集中版本控制:

    使用一台机器作为服务器,部署版本控制器服务端,在局域网内多台机器可以进行协同开发;

    如:SVN、CVS、VSS;

  3. 分布式版本控制:

    分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

1. Git概述

官网:https://git-scm.com/

淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/

Git与SVN的主要区别:

  1. git是分布式的scm,svn是集中式的;

  2. git是每个历史版本都存储完整的文件;svn是存储差异文件;

  3. git可离线完成大部分操作,svn则不能;

  4. git有着更优雅的分支和合并实现;

  5. git有着更强的撤销修改和修改历史版本的能力;

  6. git速度更快,效率更高;

git在本地有库,不联网都可以commit,联网在push到*仓库。

2. Hello Git

2.1 下载安装Git

可以通过国内镜像下载:

淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/

然后安装Git。

有三个终端:

  • Git Bash:Unix与Linux风格的命令行终端;
  • Git CMD:windows风格的命令行终端;
  • Git GUI:可视化图形界面的管理终端;

2.2 配置用户名和邮箱地址

推荐使用Git bash,平时瞧瞧linux命令不至于手生。

# 基本Linux命令
pwd 	# 当前目录路径
touch 	# 新建一个文件
mv 		# 移动文件
reset 	# 重新初始化终端/清屏
clear 	# 清屏
history # 查看命令历史

打开Git Bash

$ git config --global user.name "huangzw" 			#名称
$ git config --global user.email "aaa@qq.com"	# 邮箱

–global表示全局变量,因为这两个属性你在哪个项目里都是一样的,只做一次配置。

查看git配置信息:

  1. 系统配置

    $ git config --system -l
    

    对应文件是:

    D:\Git\etc\gitconfig
    
  2. 用户的配置

    $ git config --global -l
    user.name=huangzw
    user.email=aaa@qq.com
    

    对应文件是:

    C:\Users\administrator\.gitconfig
    

3. Git基本理论

3.1 Git 工作区域

完整的Git拥有四个工作区域:

  1. Working Directory:本地工作目录
  2. Stage(Index):暂存区
  3. History:本地版本库
  4. Remote Directory:远程版本库、*仓库

爬梯:Git

本地的三个区域也可以理解为Git仓库中HEAD指向的版本:

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

爬梯:Git

3.2 Git工作流程

  1. 在工作目录中添加、修改文件;
  2. 将文件放入暂存区(add);
  3. 将暂存区的文件提交到本地git仓库(commit);
  4. 将本地git仓库的修改推送到远程仓库(push)。

爬梯:Git

3.3 Git 文件状态

Git管理的目录下的文件有五种状态:

  1. Untracked:未跟踪,不参与版本控制;
  2. Modified:已修改;
  3. Staged:已暂存;
  4. Committed:已提交;
  5. Unmodify:未修改。

通过下图中的命令修改文件的状态。

爬梯:Git

4. Git项目搭建

工作目录(Workspace)指的是需要Git管理的目录,尽量使用英文字母命名。

4.1 创建本地仓库

在需要创建工作目录的文件夹右键运行 Git bash。

# 在当前目录新建一个git仓库
$ git init

执行完之后,该目录出现一个隐藏文件 .git。

4.2 克隆远程仓库

当代码已经存在于远程仓库时,我们都需要先从远程仓库中拷贝一份完整的仓库文件到本地。

$ git clone [url] https://******.git

5. Git文件操作

# 查看文件状态,不传参表示查看全部文件状态
git status [filename]

# 将当前目录下的所有文件添加到暂存区
git add .

# 将暂存区中的全部文件提交到本地仓库	-m 提交信息
git commit -m "提交了业务代码"



5.2 忽略文件

一些临时文件日志文件是不需要提交到仓库的,这时为了方便我们操作提交,可以设置忽略文件:.gitignore

基本语法:

# 表示注释
* 表示匹配任意字符
? 表示一个字符
[] 表示值的范围
{} 表示可选字符串
!  表示取反,不会忽略
/  表示路径分隔符

举例:

# 注释
*.log	# 忽略日志文件
.idea/	# 忽略.idea文件夹

6. Git分支

分支的常用命令:

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
git merge [branch]

# 删除分支
git branch -d [branch-name]

# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
相关标签: 版本控制器 git