- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我试图在 Git 中找到与 svn Revert
等效的东西。在 svn
中,当我右击一个文件然后单击 revert
时,这将撤消所有本地编辑。该文件返回到最后一个 commit
。我在 Git 中找不到完全相同的命令。因为我是新手,所以我不想搞砸我的工作。
假设我提交了 Init。然后我做了一些改变。现在我想回到 Init 状态。
感谢帮助
最佳答案
因为暂存区,它不像svn revert
那么简单。根据您所做的和您的目标,您需要使用 git checkout
或 git reset
。不过,您需要小心使用 git reset
,因为您可能会重写历史并丢失工作。
假设您有提交图:
A <-- B <-- C <-- D
并且您目前处于 D
并进行了一些更改。要简单地放弃所有更改(暂存或未暂存),您可以使用 git reset --hard HEAD
或 git reset --hard D
。两者都会重置您的工作副本的状态。
如果您希望工作副本的状态与A
相同,但又不丢失提交B
和C
,那么您应该使用: git checkout A -- .
从你的工作副本的顶部。这会将您的工作副本的状态设置为 A
的内容。此时,您的工作树是脏的,因此您需要提交以记录您想要返回的事实。此时的提交图将是:
A <-- B <-- C <-- D <-- A'
其中 A'
是一个新的提交(具有不同的 id),它将您的工作恢复到提交 A
的等价物。
如果你想丢失提交 B
和 C
,你可以使用 git reset --hard A
。这会将您的分支指针移回提交 A
。你现在正在改写历史,所以要小心。如果您正在与该分支上的其他团队成员一起工作,则您不希望这样做。如果它是你自己的分支,你可能需要使用 git push -f
,其中 -f
代表 --force
,在推送它时到您的远程仓库。您还需要确保已将 push.default
设置为 current
或 upstream
以避免推送所有匹配的分支并意外倒回某人的分支工作。
FWIW,我写了一个blog post about reverting changes in Git几年前。它在今天仍然有意义。您可能会发现它很有用。
关于git - git 中的 svn revert 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21693295/
链接: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html 描述了错误提交后回滚 SVN 目录的两种
我在 bitbucket 上有一个远程 git 存储库(它是私有(private)的,所以恐怕我不能在这里共享链接)...我在那里有几个分支,其中两个是: 大师 证书创建 昨天我在分支 *cert_c
我对 GIT 有一个很奇怪的情况,第一次看到这个。所以基本上在版本控制中它显示我有一个更改的文件。此文件是一个 svg: file_test.svg 当我恢复它时,它只是用 替换了这个文件File_T
我刚刚在服务器中从 511 恢复到 510;然而,即使服务器显然使用 510,511 仍然在某个地方并且 Tortoise SVN 正在考虑 511 作为头版本,因此认为没有什么可以提交的。我能做什么
我有一个形状为 (n, 3) 的 numpy 数组 a,其中填充了从 0 到 m 的整数>。 m 和 n 都可以相当大。众所周知,从 0 到 m 的每个整数有时只出现一次,但大多数情况下在 a 中的某
在线阅读,我知道 git revert 取消了过去的单个提交,但我不清楚这意味着什么,除非取消的提交是最后一次执行的提交。 例如,观察一个文件的以下三个版本: "a" => "aa" => "a|a"
假设我的提交已经推送到 Github A > B > C > D > E -- 头部 我想恢复到 B ,所以我使用 git reset --hard 现在,它看起来像 A > B -- 头部 因此,
所以很久以前,我在我的项目中添加了一个文件夹 abc,其中包含一组文件,并提交了修订版 xyz。在多次提交后,有人用 git rm -r abc 删除了文件夹。在此之后也有很多提交。 现在我需要取回文
我在使用 git revert 命令时遇到问题。我使用 Ubuntu 12.04 Linux 和 Git 版本 1.7.9.5。 我在本地 PC 上创建了一个全新的 b_test_repo,并从远程
在 Subversion (SVN) 中,可以执行 svn revert ./*,其中当前目录和仅当前目录被还原。 什么是 Git 等同于 svn revert 的,其中只有当前目录被还原? 我知道有
我目前正在制作一个脚本,在其中我已经熟悉 Tortoise SVN 及其相应的命令行功能。 我正确更新了脚本,以通过一系列测试找到正确构建的“修订版”。在脚本记录该变量(特定于版本号的)之后,我更新到
简单地说:我的右键菜单似乎缺少恢复到以前版本的选项。 我使用的是 1.7.5 版。根据帮助文件,当我进行人民币修订时,我应该看到: 与工作副本比较 将更改显示为统一差异 与以前的修订版比较 与以前的修
如何进行全局设置,使 revert 命令忽略备份创建? 最佳答案 您可以在 .hgrc 中创建别名 [alias] revert = revert --no-backup # or better ma
如果我想放弃所有更改并返回到存储库中的代码,我会执行以下操作: $ rm -fr * $ svn up 这很简单,但我想知道是否有一个命令可以完成此任务,例如: $ svn revert-all 最佳
这个问题在这里已经有了答案: Is there a way to recover from an accidental "svn revert"? (10 个答案) 关闭 4 年前。 我不小心执行了
我的案例应该是一个简单的案例,但它让我感到困惑,而且我在这里的任何其他答案中都没有发现任何实际有效的东西。 我有几个要回滚到 master 的 merge 。我想要的最终结果是将 master 设置回
有没有办法在不更改工作目录中的文件的情况下恢复旧的提交?我不久前提交了一次,但我提交的代码还没有准备好,我希望这些更改作为未提交的更改保留在我的工作目录中,以便我现在可以继续处理它们。我查看了 rev
我想删除 git 存储库上的特定提交,以便能够删除应用到我的软件的“修复”。 这是一个 EMC: #!/bin/bash rm -rf TEST .git mkdir TEST git init ec
当我通过 TortoiseGit 执行 git revert 时,我得到这个可爱的窗口: 但是,当我想从命令行执行相同操作时,the documentation设法完全混淆了我。如何还原所有本地未提交
通常 git revert 命令会自动创建一些带有提交日志消息的提交,说明哪些提交已被还原。 要避免自动提交,可以选择 -n(或 --no-commit)。 但是在这个命令之后,还原的文件在暂存区。我
我是一名优秀的程序员,十分优秀!