引入

教程简介

  1. 学习方式

图形演示+操作

  1. 常用功能

仓库管理、文件管理、分支管理、标签管理、远程操作

  1. 进阶功能

使用开发工具来集成Git软件和访问GitHub,Gitee这样的第三方代码托管平台

  1. 功能指令

add、commit、log、branch、tag、remote、status

为什么学习Git软件

  1. 为什么要学习Git软件?

资源管理:人力资源、代码资源、文档资源

  • 代码资源:.html, .css, .js, .java, .py, .c等
  • 文档资源:需求文档、设计文档等(如doc、ppt、xls、img、pdf、zip等)

这些项目文件都需要专门的软件管理。这样的软件就叫SCM软件(Software configuration Management):

软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。

  1. 为什么要学习Git软件?

集中式版本控制

VSS软件(visual sourcesafe)微软早期开发的版本控制系统。集中式版本控制,服务器上的同一份程序代码文件不能同时修改,在同一个时间点,由一个人锁定服务器进行开发,开发完成释放服务器的锁定状态,再由另外一个人锁定文件再进行开发。

CVS(concurrent versions system)支持多人协作进行开发,效率非常不错,但是由于软件本身有一些编码等问题。

所以在项目中,使用它的升级版本Subversion

以上都需要中央服务器,作为项目资源库,对资源进行管理和存储,一旦服务器发生故障和损坏,项目的资源也会发生丢失或损坏,从而造成不可逆的损失。

Clear Case:由IBM开发的。

Perforce:商业化版本控制工具,对美术资源比较友好。

分布式版本控制

GIt

概念

版本控制

集中式版本控制、分布式版本控制、多人协作开发

版本:软件版本、文件版本

  • 软件版本:

    • jdk:1.8/17/20
    • MySQL:5.7/8.0
    • IDEA:2022/2023
  • 文件版本:

    • 保存重要的历史记录
    • 恢复数据

版本控制软件基础功能

  1. 保存和管理文件

  2. 提供客户端工具进行访问

  1. 提供不同版本文件的比对功能

客户端

集成

版本号

通过“SHA-1”的加密算法,生成40位版本号。

可以定位仓库中的文件:2+38(前两位为文件夹,后38位为文件名)

文件操作

1
git cat-file -p  文件名

-p 表示友好的查看文件

100644:100表示普通文件,644表示文件权限

文件修改:

文件删除:

分支操作

暂存区主要的目的就是比对文件。

命令

介绍

仓库操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 可以查看git软件的版本
git -v

# 创建仓库:两种方式(本地创建,从远程克隆一个到本地)

# 1、构建仓库=初始化 完成后会增加一个 .git 目录
git init

# 2、克隆
git clone <http路径> <自定义名称 可选>

# 对仓库进行配置
git config <配置名称 比如user.name> <配置的值 名字>
git config user.email <邮箱>

# 添加全局配置
git config --global user.name <名字>
git config --global user.email <邮箱>

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看暂存区状态
git status

# 把工作区文件放入暂存区
git add <文件名>

# 将文件从暂存区删除
git rm --cached <文件名>

# 将暂存区文件加入存储区
git commit -m <消息>

# 查看历史记录
git log
# 用一行显示一条记录
git log --oneline

误删除

1
2
3
4
5
6
7
8
9
10
# 如果误删除了已经commit的文件 恢复
git restore <文件名>

# 如果误删除的操作也已经commit 就不能用restore恢复了
# 但是可以将当前版本库重置到某一次提交
git reset --hard <版本号 可以使用git log指令看需要重置到哪一次>

# 又希望恢复文件 又不希望记录log丢失
# 把当前版本库回退到 某个提交 之前
git revert <版本号>

分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建分支 有提交才能创建分支
git branch <branch name>

# 查看有多少分支
git branch -v

# 前面有‘*’符号表示当前分支
# 切换当前分支
git checkout <想要切换到的分支名>

# 可以直接创建并切换
git checkout -b <分支名>

# 删除分支
git branch -d <分支名>

合并和冲突:

1
2
3
4
# 将order合并到master上
# 先checkout到master上,再使用以下命令
git merge oder
# 如果冲突 查看冲突文件 修改 提交修改后的文件 即可

标签操作

1
2
3
4
5
6
7
8
9
10
11
# 某一次提交的版本号太长 可以给它一个标签代替
git tag <标签名> <版本号>

# 查看所有标签
git tag

# 标签不能重复!!!
# 删除标签
git tag -d <标签名>

# 标签也可以用来创建分支

远程仓库

1
2
3
4
5
6
# 修改不同的url
git remote set-url origin <newurl> <oldurl>

# 也可以用git remote add orgin <newurl>
# 或者 git remote remove orgin <newurl>
# 或者 git remote rename orgin <newurl>

本地修改 push到远程仓库

1
2
3
4
5
6
# 使用ssh的url 进行push 需要提供安全认证功能
# 生成安全证书
ssh-keygen -t rsa -C <ssh地址>

git push <remote 名字>

远程修改 拉取到本地仓库

1
git pull <remote 名字>

GitLab

总结

参考教程:【Git全套教程,3小时速通git,git入门到实战】https://www.bilibili.com/video/BV1wm4y1z7Dg?p=30&vd_source=fd8b55aa754198a22efdcca12a0fda4b