一、为什么要使用Git?
1、源代码管理的好处
- 方便多人协同开发
- 方便版本控制
2、Git的诞生
- 作者Linux之父:Linux Torvalds。
- git开发目的:为了辅助 Linux 内核的开发。
- 2008年,GitHub 网站上线,为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub。
- Git 迅速成为最流行的分布式版本控制系统(没有之一)。
二、Git的结构
1、结构分析
Git
是分布式管理系统。服务器和客户端都有版本控制能力,都能进行代码的提交、合并等操作。
- 结构图一:
- 结构图二:
2.本地代码管理
(1)工作区(Workspace):添加
、修改
、删除
文件
(2)暂存区(Index):将工作区中的操作完成小阶段的存储,是版本库的一部分
(3)本地仓库区(Respository): 对个人开发的一个小阶段代码存储
- 记录的各版本可以查看或者回退
- 但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)
三、本地仓库操作
1.安装git
# 在虚拟机上安装
sudo apt-get install git
2.查看是否安装成功
输入 git ,讲解下git 的基本命令
git version #查看版本
3.创建项目
- 创建test_git 文件夹, 表示工作项目
- cd test_git
- 输入
git init
命令 ,初始化本地仓库
# 在test_git文件下会创建一个.git隐藏文件
++ ls -al
total 12
drwxrwxr-x 3 Conner Conner 4096 11月 27 16:22 .
drwxr-xr-x 14 Conner Conner 4096 11月 27 16:22 ..
drwxrwxr-x 7 Conner Conner 4096 11月 27 16:22 .git
++ ls .git 显示配置信息
4.配置个人信息和将文件提交到仓库区
- 配置步骤如下:
# 配置个人信息
++ git config user.name "laowang"
++ git config user.email "python@admin.com"
# 配置信息出现在.git/config文件中
- 新建测试文件
#在test_git文件夹下创建
vim test01.py
- 查看文件状态
git status
- 将工作区添加到暂存区
# 添加项目中所有文件
git add .
或者# 添加指定文件
git add test01.py
- 将暂存区文件提交到仓库区
git commit -m '一些描述'
git status 查看工作区没了(暂存区可以回退到工作区,但是仓库区不可以回退)
- 查看日志
git log 查看提交操作
git reflog
注意:git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 不能察看已经删除了的commit记录
1、 修改文件
vim test01.py
2、查看状态
git status # 会变成红色 提示修改
3、提交内容到仓库区
git commit -am '新增内容'
5、回退版本
-
HEAD
表示当前最新版本 -
HEAD^
表示当前最新版本的前一个版本 -
HEAD^^
表示当前最新版本的前两个版本,以此类推... -
HEAD~1
表示当前最新版本的前一个版本 -
HEAD~10
表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^
6.撤销修改
(1)只能撤销工作区、暂存区的代码(不能撤销仓库区的代码)
- 添加文件
vim test.py 添加 num=30
cat test.py 查看
- 撤销工作区代码
git checkout test.py
cat test.py 添加的内容没了
- 撤销暂存区代码
vim test.py 添加 num=99
git add test.py
git status
cat test.py
# 第一步:将暂存区代码撤销到工作区
git reset HEAD test.py
# 第二步:撤销工作区代码
git checkout test.py
cat test.py # 添加的内容消失了
(2)撤销仓库区的代码就相当于回退版本操作
7.文件删除
(1)确定删除处理,两种方法如下
# 删除文件
rm 文件名
# git确定删除文件,对比添加文件git add
git rm 文件名
# 删除后记录删除操作版本
git commit -m '删除描述'
(2)提交删除就能撤消更改了, 下面的方法可以撤回(误删处理,撤销修改)
# 删除文件
rm 文件名
# git撤销修改
git checkout -- 文件名
网友评论