• git代码管理(一)


    介绍

    git是一个分布式的代码版本管理工具(区别于集中式管理的svn),分布式的意思是对于同一个项目可以有多个仓库存储,分布在不同的用户或者代码托管平台上(远程仓库),每一个仓库都有自己的一套完整管理系统,包括工作区,暂存区,仓库区,提交到仓库区的代码可以再次提交到远程仓库(Remote)中。

    暂存区

    暂存区是用来存储修改好的代码,但还未提交到仓库区的一个区域,在工作区中修改完成代码后,可以将代码先提交到暂存区。暂存区有如下作用:

    1. 提供了一个临时存储更改的地方:当你在工作目录中修改了文件后,可以使用git
      add命令将这些修改添加到暂存区。这样做可以把相关修改保存在一个临时区域中,而不会立即将其提交到代码仓库。
    2. 控制提交的内容:通过将修改添加到暂存区,你可以选择性地将不同的文件或变更单独提交。例如,你可以将实现某个特性的代码和修改文档的更新同时添加到暂存区,然后分别进行提交,而不必将这些修改混合在一起。
    3. 检查更改内容:通过将修改添加到暂存区,你可以使用git diff
      –staged命令查看将被提交的更改内容,以确保准备提交的版本是你所期望的。
    4. 回滚修改:如果你对某个文件的修改出现了问题,你可以使用git restore --staged
      命令将该文件从暂存区中移除,以撤销对该文件的修改。

    暂存区的存在使得Git具有更强大的版本控制能力,可以更加精细地控制修改的提交,提供了更灵活的工作流程。

    安装

    这个很简单,按照步骤即可完成安装

    创建仓库

    使用 git init 命令在本地创建一个包含三个区的完整仓库
    在这里插入图片描述

    提交文件

    新建一个readme.txt文件,我们首先将他提交到缓存区中,使用git add readme.txt中
    在这里插入图片描述
    接下来可以提交到仓库中,使用git commit -m "readme.txt submit"指令,-m 后是本次提交的注解

    查看当前是否还有文件未提交

    git status
    在这里插入图片描述
    刚刚已经提交过了 因此显示没有未提交的
    重新修改readme.txt中,此时还未提交到暂存区,显示如下:
    在这里插入图片描述
    此时可以使用git diff readme.txt来查看修改了哪些
    在这里插入图片描述

    使用git add readme.txt 加入到暂存区,再次使用git status
    在这里插入图片描述
    此时git追踪到了readme文件的变化,显示可以再次提交到仓库,但是此时再次使用diff指令却没有变化

    在这里插入图片描述

    git diff命令通常用于查看未暂存的更改或与最新提交之间的差异。它可以帮助开发人员了解文件的变动情况,包括添加、修改和删除的内容。

    使用 git diff --staged指令便可以查看
    在这里插入图片描述

    git diff --staged命令用于比较暂存区(也称为索引)与最新提交之间的差异。–staged选项与–cached选项是等效的,它们都用于指定比较暂存区与最新提交之间的差异。

    查看提交历史

    使用git log会显示从近到远的三个提交历史,也可以使用git log -–pretty=oneline 一行显示
    在这里插入图片描述

    版本回退

    我们现在新增一个提交
    在这里插入图片描述
    现在想要回到上一个版本,该如何操作
    使用git reset --hard HEAD^指令
    在这里插入图片描述
    使用git reset --hard HEAD~

    在这里插入图片描述
    使用^无法完成回退,使用 ~则可以
    HEAD^和HEAD~的区别,可以参考这篇文章https://blog.csdn.net/u012745499/article/details/114212461

    git reset 命令有不同的用法,最常见的包括以下几种:
    撤销提交(Undo Commit):通过将分支指针移动到之前的提交,你可以撤销最新的提交并将代码回退到上一个状态。常用的选项包括:
    git reset HEAD~:将当前分支指向上一个提交,并保留之前的更改作为未暂存的更改。
    git reset --hard HEAD~:将当前分支指向上一个提交,并丢弃之前的所有更改。
    取消暂存(Unstage):如果你已经使用 git add 将文件添加到暂存区,但想要撤销这些更改,可以使用以下命令:
    git reset:将当前分支的 HEAD 移动到上一个提交,同时保留工作目录中的更改。
    移动分支指针(Move Branch Pointer):通过将分支指针移动到另一个提交,你可以更新分支的位置,将其指向不同的提交。常用的选项包括:
    git reset :将当前分支指向指定的提交,并保留之前的更改作为未暂存的更改。
    git reset --hard :将当前分支指向指定的提交,并丢弃之前的所有更改。
    需要注意的是,git reset 是一个强大且潜在有风险的命令,它会修改提交历史和分支指针位置。因此,在使用 git reset 前,请确保理解其影响,并确保你的操作不会导致不可逆的数据丢失。

    恢复版本回退

    此时查看git 历史
    在这里插入图片描述
    之前的提交已经没有了。如何可以查看刚刚那个版本的提交呢,可以使用git reflog来进行查看

    git reflog用于查看本地仓库中的引用日志(reference logs)。引用日志记录了本地仓库中的引用(分支、标签等)的变动历史,包括分支的创建、删除、合并以及提交的移动等操作。它可以帮助你追踪和恢复意外删除或移动的提交、分支或标签。
    使用git reflog命令可以列出引用日志的信息,显示了每个引用的操作记录和相应的提交哈希值。
    在这里插入图片描述

    此时我们可以拿到“版本回退”的提交哈希值,通过使用哈希值便可以恢复了
    我们使用git reset --hard fedab1b 便可以恢复了
    在这里插入图片描述

  • 相关阅读:
    程序员购车指南
    Python学习笔记 - 函数和lambda表达式 (2)
    零散的笔记
    nginx 安全加固
    JavaScript中的 inludes 和 indexOf 方法 | 判断字符串或数组中是否存在对应的元素| 相同点与不同点 | 代码详解
    如何快速看懂复杂代码
    SpringBoot3安全管理
    Android13保存文件到sdcard报错:Operation not permitted
    知识点滴 - 什么是开放数据
    R3F(React Three Fiber)基础篇
  • 原文地址:https://blog.csdn.net/qq_45862085/article/details/133274423