一、为什么要使用Git?

1.传统文档管理

在我们写毕业论文时可能会遇到,多次修改之后的论文命名方式:

论文_改.doc、论文_改改.doc、论文_改改改.doc、论文_改改改改.doc、论文_改改改改再改.doc、
论文_改改改改再改TM不改了.doc

 

2.源代码管理的好处

  • 方便多人协同开发

  • 方便版本控制

 

3.Git的诞生

  • 作者Linux之父:Linux Torvalds

  • git开发目的:为了辅助 Linux 内核的开发

  • 是 Linux Torvals 在无奈被逼的情况下创造的

  • 2008年,GitHub 网站上线,为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub

  • Git 迅速成为最流行的分布式版本控制系统(没有之一)

 

二、Git结构

1.结构分析

Git是分布式管理系统。服务器和客户端都有版本控制能力,都能进行代码的提交、合并。

2.本地代码管理

工作区(Workspace):添加修改删除`文件

暂存区(Index):将工作区中的操作完成小阶段的存储,是版本库的一部分

本地仓库区(Respository): 对个人开发的一个小阶段代码存储

  • 记录的各版本可以查看或者回退

  • 但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)

 

三、本地仓库操作

1.安装git


# 在虚拟机上安装
sudo apt-get install git

 

2.查看是否安装成功


git version 查看版本

 

3.创建项目

1,创建test_git 文件夹, 表示工作项目

2,cd test_git

3,git init 初始化本地仓库



# 会创建一个.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   显示配置信息

c.配置个人信息


# 配置个人信息
git config user.name "laowang"
git config user.email "python@admin.com"


# 配置信息出现在.git/config文件中

d.新建测试文件


vim test11.py

e.查看文件状态


git status

####f.将工作区添加到暂存区


# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add test01.py

g.将暂存区文件提交到仓库区


commit会生成一条版本记录
-m后面是版本描述信息

git commit -m '版本描述'

git status 查看工作区没了

 


git log 查看提交操作
git reflog   可以查看的还有版本号

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 不能察看已经删除了的commit记录

修改文件

vim test11.py

查看状态

git status # 会变成红色 提示修改

提交内容到工作区

git commit -am '新增内容'

 

4.回退版本

方法一:

  • HEAD表示当前最新版本

  • HEAD^表示当前最新版本的前一个版本

  • HEAD^^表示当前最新版本的前两个版本,以此类推...

  • HEAD~1表示当前最新版本的前一个版本

  • HEAD~10表示当前最新版本的前10个版本,以此类推...


git reset --hard HEAD~1

git reset --hard e26674f(版本号)

5.撤销修改

  • 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码

  • 撤销仓库区的代码就相当于回退版本操作

    • 撤销工作区代码

      • 新加代码num3 = 30,不add到暂存区,保留在工作区


      git checkout 文件名
    • 撤销暂存区代码

      • 新加代码num3 = 30,并add到暂存区


    # 第一步:将暂存区代码撤销到工作区
    git reset HEAD  文件名
    # 第二步:撤销工作区代码
    git checkout 文件名

    cat  test.py    # 添加的内容消失了

 

6.文件删除

  • 确定删除处理与误删

    • 确定删除


    # 删除文件
    rm 文件名
    # git确定删除文件,对比添加文件git add
    git rm 文件名
    # 删除后记录删除操作版本
    git commit -m '删除描述'

    提交删除就能撤消更改了, 下面的方法可以撤回

  • 误删处理,撤销修改


    # 删除文件
    rm test11.py
    # git撤销修改
    git checkout -- 文件名