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代码管理(一)_第1张图片
此时可以使用git diff readme.txt来查看修改了哪些
git代码管理(一)_第2张图片

使用git add readme.txt 加入到暂存区,再次使用git status
git代码管理(一)_第3张图片
此时git追踪到了readme文件的变化,显示可以再次提交到仓库,但是此时再次使用diff指令却没有变化

在这里插入图片描述

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

使用 git diff --staged指令便可以查看
git代码管理(一)_第4张图片

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

查看提交历史

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

版本回退

我们现在新增一个提交
git代码管理(一)_第5张图片
现在想要回到上一个版本,该如何操作
使用git reset --hard HEAD^指令
git代码管理(一)_第6张图片
使用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代码管理(一)_第7张图片

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

你可能感兴趣的:(git学习,git)