专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
今天看啥  ›  专栏  ›  Java知音

一文讲清各种场景下 Git 如何回退

Java知音  · 公众号  ·  · 2024-09-24 10:05
    

主要观点总结

本文介绍了Git中回退操作的多种场景及相应命令,包括commit前回退、commit后回退、push后回退、恢复误删分支以及回退命令的对比。

关键观点总结

关键观点1: commit前回退

包括整个工程回退和单个文件回退,可以使用reset或checkout命令,其中--hard会丢弃工作区的改动以及暂存区的新增文件,并将指针移动到上一个提交版本。

关键观点2: commit后回退

包括回退到上个版本、回退到指定版本并放弃后续修改、回退到指定版本但保留工作区。可以使用revert、reset命令,其中reset可以根据需要选择soft、mixed或hard方式。

关键观点3: push后回退

当错误代码被推送到远程仓库时,需要先修复本地内容,然后强制推送到远程仓库。但强制推送可能会导致他人的工作丢失,因此需要与团队成员沟通。

关键观点4: 恢复误删分支

如果分支被误删除,可以使用reflog命令找到被删除分支的最后一次提交的哈希值,然后使用branch命令恢复。

关键观点5: 回退命令对比

分析了reset、revert和checkout三个命令的用法、原理和最终回退的效果。其中reset可以重置到指定提交点,revert是创建新提交来撤销指定提交的变更,checkout则是切换分支或恢复文件状态。


文章预览

一、commit 前回退 场景:当我们在工作区做了一些改动,或者ADD了一些新文件,但还没有提交时 1. 整个工程回退 此时如果我们想整个工程回退到上一个提交版本,可以使用 reset 或 checkout,如 git reset --hard HEAD 我们在这里使用了 – hard , 这样会丢弃工作区的所有改动以及暂存区的新增文件,并将指针移动到上一个提交版本,即把所有文件恢复至上一个提交点。 2. 单个文件回退 但有的时候我们仅仅是一个文件搞砸了,不需要回退整个工程,仅需要回退某个文件到上次提交点的话,可以使用 checkout 把某次提交的某个文件给取出来 git checkout   --  比如 我们想将example.txt文件回退到上一次 commit 的状态,就可以这么用 git checkout -- example.txt 如果你使用IDEA的话,则可以使用里面的 Rollback 操作达到同样的效果 3. 新增文件回退 对于一些新文件,如果已 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览