微软官方MSDN原版Win10系统下载

现在位置: 首页  > 系统教程  > Linux教程

Linux系统如何在Git里撤销操作

时间:2024-11-23 15:23:21   

大家好,今天Win10系统之家小编给大家分享「Linux系统如何在Git里撤销操作」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!

中宝平增客系统app系列软件最新版本下载

  可以说,所有的操作系统都有撤销的操作,Linux系统当然也不例外。而且在Linux的 Git中就可以撤销掉绝大部分的错误操作,一起来看一下吧。

  当你进行一次新的提交的时候,Git 会保存你代码库在那个特定时间点的快照;之后,你可以利用 Git 返回到你的项目的一个早期版本。

  在本篇博文里,我会讲解某些你需要“撤销”已做出的修改的常见场景,以及利用 Git 进行这些操作的最佳方法。

  撤销一个“已公开”的改变

  场景: 你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit.

  方法: git revert 《SHA》

  原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。如果原先的 commit 是“物质”,新的 commit 就是“反物质” — 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit 里被删除。

  这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以 git push 新的“反转” commit 来抵消你错误提交的 commit。

  修正最后一个 commit 消息

  场景: 你在最后一条 commit 消息里有个笔误,已经执行了 git commit -m “Fxies bug #42”,但在 git push 之前你意识到消息应该是 “Fixes bug #42″。

  方法: git commit --amend 或 git commit --amend -m “Fixes bug #42”

  原理: git commit --amend 会用一个新的 commit 更新并替换最近的 commit ,这个新的 commit 会把任何修改内容和上一个 commit 的内容结合起来。如果当前没有提出任何修改,这个操作就只会把上次的 commit 消息重写一遍。

  撤销“本地的”修改

  场景: 一只猫从键盘上走过,无意中保存了修改,然后破坏了编辑器。不过,你还没有 commit 这些修改。你想要恢复被修改文件里的所有内容 — 就像上次 commit 的时候一模一样。

  方法: git checkout -- 《bad filename》

  原理: git checkout 会把工作目录里的文件修改到 Git 之前记录的某个状态。你可以提供一个你想返回的分支名或特定 SHA ,或者在缺省情况下,Git 会认为你希望 checkout 的是 HEAD,当前 checkout 分支的最后一次 commit。

  记住:你用这种方法“撤销”的任何修改真的会完全消失。因为它们从来没有被提交过,所以之后 Git 也无法帮助我们恢复它们。你要确保自己了解你在这个操作里扔掉的东西是什么!(也许可以先利用 git diff 确认一下)

  重置“本地的”修改

  场景: 你在本地提交了一些东西(还没有 push),但是所有这些东西都很糟糕,你希望撤销前面的三次提交 — 就像它们从来没有发生过一样。

  方法: git reset 《last good SHA》 或 git reset --hard 《last good SHA》

  原理: git reset 会把你的代码库历史返回到指定的 SHA 状态。 这样就像是这些提交从来没有发生过。缺省情况下, git reset 会保留工作目录。这样,提交是没有了,但是修改内容还在磁盘上。这是一种安全的选择,但通常我们会希望一步就“撤销”提交以及修改内容 — 这就是 --hard 选项的功能。

  在撤销“本地修改”之后再恢复

  场景: 你提交了几个 commit,然后用 git reset --hard 撤销了这些修改(见上一段),接着你又意识到:你希望还原这些修改!

  方法: git reflog 和 git reset 或 git checkout

  原理: git reflog 对于恢复项目历史是一个超棒的资源。你可以恢复几乎 任何东西 — 任何你 commit 过的东西 — 只要通过 reflog。

  你可能已经熟悉了 git log 命令,它会显示 commit 的列表。 git reflog 也是类似的,不过它显示的是一个 HEAD 发生改变的时间列表。

上一页1234下一页 剩下全文

以上就是关于「Linux系统如何在Git里撤销操作」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~

『♀此文为Win10系统之家www.gHost580.NEt文♂章,不得自行转载,违者必追究!』

相关文章

  • Linux系统如何在Git里撤销操作

    Linux系统如何在Git里撤销操作


      可以说,所有的操作系统都有撤销的操作,Linux系统当然也不例外。而且在Linux的Git中就可以撤销掉绝大部分的错误操作,一起来看一下吧。
      当你进行一次新的提交的时候,Git会保存你代码库在那个特定时间点的快照;之后,你可以利用Git返回到你的项目的一个早期版本。
      在本篇博文里,我会讲解某些你需要“撤销”已做出的修改的常见场景,以及利用Git进行这些操作的最...
  • 如何在Linux系统中制作可启动img/iso镜像文件

    如何在Linux系统中制作可启动img/iso镜像文件


      img/iso文件是镜像文件,在Linux系统操作中有时需要制作镜像文件,那么制作镜像文件的方法有哪些呢?下面小编就给大家介绍下如何下Linux下制作可启动img/iso文件。
      制作镜像文件有三种方法,cp,cat,dd和其它专用工具。cp,cat和dd都可以从设备复制文件来创建镜像。而dd命令更为强大,可以通过指定块大小,块多少来直接创建镜像。
      IMG文件:...
  • 如何在同台电脑上安装不同版本的Linux系统

    如何在同台电脑上安装不同版本的Linux系统


      我们都知道,一台电脑上可以同时按照两个不同的系统,也就是我们所说的双系统,那么在同一台电脑上能不能安装不同版本的Linux系统呢?下面随小编一起来学习下如何在同一台电脑上安装不同版本的Linux系统。
      步骤/方法
      1.将Fedora-9-i386-DVD.iso文件放到一个WindowsFat32分区((hd0,4))的根目录,将这个iso文件中的isolin...
  • 如何在Linux系统中设置微软鼠标

    如何在Linux系统中设置微软鼠标


      在windows下使用微软鼠标非常简单,微软鼠标拥有5个按钮,那么在Linux下要如何使用微软鼠标呢?下面小编就给大家介绍下如何在Linux下配置微软鼠标。
      虽说使用linux的人大都对微软没什么好感,但不能否认微软确实也出了不少好东西呀,比如微软鼠标(IE系列)icon_smile.gifIE2.0和以上版本都有5个按钮,除了正常的左中右外,两侧还各有一个,在windo...