一 Git介绍
1 什么是版本控制
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
2 为什么使用版本控制
采用手动复制的方式管理版本,会造成版本管理混乱,而通过版本控制管理,能记住针对软件的每一次改动,能够比较查看不同版本之间的异同,并且可以恢复到之前的任一版本;
有利于团队开发,能让团队中的成员了解到代码的最新情况,避免重复劳动,也便于解决代码冲突问题。
一些常用的版本控制软件包括:Git、SVN、CVS、TFS等
3 Git介绍
Git是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
3.1 下载和安装
安装后,使用如下命令验证是否可以正常使用:
C:\Users\renrui>git --version
git version 2.35.1.windows.2
3.2 Git基本架构
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
二 本地仓库
1 基本使用
1.1 配置用户和邮箱
用于记录提交是谁完成的,注意,此处配置的用户名和邮箱不会进行验证
git config --global user.name "renr"
git config --global user.email "123444@aliyun.com"
1.2 初始化仓库
1)创建本地仓库的文件夹
mkdir mysys
2)初始化仓库
先切换到仓库文件夹,再初始化
D:\>cd mysys
D:\mysys>git init
Initialized empty Git repository in D:/mysys/.git/
初始化空仓库后,会生成一个.git目录
3) 将工作空间的修改添加到暂存区
在仓库中新建hello.txt文件
然后执行git add 命令
D:\mysys>git add hello.txt
4)暂存区内容提交到仓库
D:\mysys>git commit -m "create hello.txt"
[master (root-commit) f35de6b] create hello.txt
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
-m 后面表示本次提交的说明
创建Git版本库时,Git自动为我们创建了一个master分支,所以,git commit就是往master分支上提交更改。
注意:修改文件内容后,需要再次执行add和commit命令
修改没有提交到暂存区时,如果想撤销修改,可以使用git checkout hello.txt命令操作
2 其他命令
2.1 查看仓库状态
git status
对文件进行修改,通过git status查看状态
2.2 对比查看修改了什么内容
git diff
2.3 查看修改的历史记录
git log
2.4 版本回退
git reset [--soft | --mixed | --hard] ,默认--mixed
1)--mixed
回退到指定版本后,该版本之后的修改放在工作区,没有放在暂存区,即回退了commit和add操作
注意:打开文件查看,其内容没有变化
2)-- soft
回退到指定版本后,该版本之后的修改放在暂存区,即回退了commit操作
注意:打开文件查看,其内容没有变化
3)--hard
回退到指定版本后,该版本之后的修改都会删除
注意:查看文件,发现文件中内容显示的是上个版本内容
2.5 撤销提交
git revert
通过该命令可以撤销某次提交,撤销提交时,原来的提交记录还会保留,同时会生成一个新的提交
弹出交互式页面,输入 :q,退出
如果revert时,不想自动生成新的提交,可以使用-n选项,比如 git revert -n head
查看日志,发现新生成了一个提交,查看文件,内容回退到上个版本
revert中间的某次提交时,可能会存在冲突