当前位置: 首页 > news >正文

git基础命令(二)

目录

  • git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改
  • git show 显示提交详细信息
  • git mv 重命名文件
  • git rm 从工作树和索引中移除文件
  • git clean 从工作树中移除未跟踪文件
  • git checkout 将文件恢复到工作树
  • git reset 撤销更改、移动 HEAD 指针以及重置暂存区
    • git reset 基本用法:
      • git reset <commit>
      • git reset --hard <commit> 回到特定提交但本次提交的内容会全部丢失
      • git reset --soft <commit> 回到特定提交,本次提交的内容会全部恢复到add之前的状态
    • git reset 示例说明:
  • git add -u 仅将修改和删除的文件添加到索引
  • git init 在当前目录下创建一个新的 Git 仓库
  • 参考

用于知识记录。后续有新的的内容,例子,将持续更新本文档。

git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改

git revert HEAD

Git revert 命令将一个提交作为参数,
撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改。

git show 显示提交详细信息

$ git show <commit-id>
commit-id可以通过 git log获取或命令参数中的HEAD

git mv 重命名文件

重命名文件; 即使文件在暂存区即已经git add了也可以修改
$ git mv <oldfilename> <newfilename>

git rm 从工作树和索引中移除文件

$ git rm <file>

git clean 从工作树中移除未跟踪文件

$ git clean
添加-n选项将只显示将要移除的文件。添加-f选项实际上会移除文件。
在默认的情况下,不会移除.gitignore配置文件下列出的文件。但是,如果您指定-x选项,.gitignore下列出的文件将从工作树中移除。

git checkout 将文件恢复到工作树

即把文件从已经add的状态恢复成add前

git checkout -- <file> 
git checkout -- . 

把所有git add的文件都恢复到git add

git reset 撤销更改、移动 HEAD 指针以及重置暂存区

git reset 是 Git 中一个非常有用的命令,可以用来撤销更改、移动 HEAD 指针以及重置暂存区等操作。下面是 git reset 的详细用法和一些示例说明:

git reset 基本用法:

git reset

git reset <commit>:将当前分支的HEAD指针移动到指定的 <commit>,并将暂存区重置为该 <commit> 的状态,但工作目录不受影响。

git reset --hard 回到特定提交但本次提交的内容会全部丢失

git reset --hard <commit>:将当前分支的HEAD指针、暂存区和工作目录都重置为指定的 <commit> 的状态。慎用,会丢失未提交的更改。

什么时候用这个?

比如你刚已经git add git commit到本地的内容,你想撤销这次的提交,并且这次提交的内容全都不要了,就用
git reset --hard HEAD 这样会回到你提交前本地最新的那笔提交。

如果你想回到过去的某笔特定的提交,获取这次提交的commit id,且你本次提交的所有内容都不要了,就使用
git reset --hard commit-id 这样就能回到你想要的那笔提交了(当然这个指的是你本地的)

git reset --soft 回到特定提交,本次提交的内容会全部恢复到add之前的状态

git reset --soft <commit>:将 HEAD 指针移动到指定的 <commit>,但保留暂存区和工作目录不变。这样你可以重新提交之前的更改。
同理,不过这个会把你之前提交的内容全部恢复到工作树,就是你提交之前,add之前的状态。会保留你的文件。

git reset 示例说明:

  • 撤销最后一次提交并保留更改:

git reset --soft HEAD~1

这个命令会将 HEAD 指针移动到倒数第二次提交,保留最后一次提交的更改在暂存区中,你可以修改后重新提交。

  • 撤销最后一次提交并丢弃更改:

git reset --hard HEAD~1

这个命令会将 HEAD 指针移动到倒数第二次提交,并丢弃最后一次提交的更改,包括暂存区和工作目录中的更改。

  • 将暂存区的更改移除暂存状态:

git reset HEAD <file>

这个命令会将指定文件 <file> 从暂存区中移除,但保留在工作目录中的更改。

  • 将 HEAD 指针移动到特定的提交:

git reset --hard <commit_hash>

这个命令会将 HEAD 指针移动到指定的 <commit_hash>,并且重置暂存区和工作目录为该提交的状态。

注意事项:

  • 使用 git reset 命令时要谨慎,因为它会改变仓库的状态,可能会导致数据丢失。
  • 在进行 reset 操作之前,建议先使用 git status git diff 等命令来查看当前的状态和更改,以免造成意外操作。

git add -u 仅将修改和删除的文件添加到索引

$ git add -u
此命令将仅注册已添加到索引的文件的更改。它不会暂存未跟踪的文件

git init 在当前目录下创建一个新的 Git 仓库

执行 $ git init 命令会在当前目录下创建一个新的 Git 仓库。具体来说,以下是$ git init 命令执行后可能发生的一些主要步骤:

  1. 初始化仓库:Git 会在当前目录下创建一个名为 .git 的子目录,这个目录包含了 Git 仓库的所有必要文件和子目录。
  2. 创建默认分支:Git 会创建一个默认的主分支,通常是master分支(在新版本的 Git 中可能是 main 分支),用于跟踪项目的主要开发进展。
  3. 创建初始提交:Git 会创建一个初始的提交(commit),表示仓库的初始状态。这个提交包含了当前目录下所有文件的快照。
  4. 设置配置:Git 会在 .git 目录中创建一个配置文件,用于存储仓库的配置信息,比如用户名、邮箱等。
  5. 完成初始化:一旦执行$ git init完成,当前目录就成为了一个 Git 仓库,你可以使用 Git 来进行版本控制、提交更改、创建分支等操作。

在执行完$ git init后,你就可以开始使用 Git 来管理项目的版本控制了。记得在使用 Git 前,需要先配置用户信息,例如设置用户名和邮箱,以便 Git 能够正确记录提交信息。

参考

适合初学者的简单 Git 教程

http://www.lryc.cn/news/318098.html

相关文章:

  • 从零开始学习typescript系列 1:typescript 基本了解之是什么,为什么,以及怎么用
  • 【数学建模】线性规划
  • MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2
  • 搭建个人智能家居 3 -第一个设备“点灯”
  • 基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节(创建对象 )
  • unity学习笔记 Restsharp 使用心得
  • YOLOV5 部署:QT的可视化界面推理(创建UI,并编译成py文件)
  • Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码
  • vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)
  • 数字排列 - 华为OD统一考试(C卷)
  • yocto 编译raspberrypi 4B并启动
  • Nginx、LVS、HAProxy工作原理和负载均衡架构
  • C语言标准库函数qsort( )——数据排序
  • 基础---nginx 启动不了,跟 Apache2 服务冲突
  • 如何利用百度SEO优化技巧将排到首页
  • CSS隐藏元素的方法 ( 5 种)
  • 微信小程序(五十九)使用鉴权组件时原页面js自动加载解决方法(24/3/14)
  • Git 学习笔记 三个区域、文件状态、分支、常用命令
  • OrangePiLinux连接小米手机使用adb显示“List of devices attached”的问题解决
  • 【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】
  • 3.1_9 基本分段存储管理
  • 基于SpringBoot+Druid实现多数据源:baomidou多数据源
  • Redis开发规范与性能优化(二)
  • 我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
  • 【Python数据结构与判断7/7】数据结构小结
  • 探讨:MySQL和PostgreSQL谁更火
  • hbase和es的选取 hbase与es结合
  • GoLang:云原生时代致力于构建高性能服务器的后端语言
  • 高频面试必备(Java研发岗),一线互联网架构师设计思想解读开源框架