- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
git revert
是如何使用的?
这听起来像是一个重复的问题,但当人们问它时,回答通常是,按照 Revert to a commit by a SHA hash in Git? 使用 git reset
.
然后当有人询问如何使用 git reset
时,人们回答说你应该按照 Git - how to rollback 使用 git revert
.
在您不知不觉中,八个不同的人出现了,他们用自己独特的方式来拯救 OP 的屁股,所有这些都在您的脑海中。
因此,让我们试着坚持简短并编写一份 git revert
的傻瓜指南。
一个场景:你已经提交了两次 master,这很糟糕。你已经 push 了,但其他人有你的错误改变。
您想撤消它。这不是您可以自己在代码中手动撤消的事情,例如某些向导或包管理器到处更改了大量内容 - 您只想将其全部恢复原状。
这就是源代码管理的全部内容。我相信这很容易。
好的,您将使用 git revert
,但是如何使用呢?
在运行 git revert
之后,您还需要做其他事情吗?您是否必须提交所做的更改还原或直接还原到存储库或什么??
显然,您需要再次 push 并可能向团队宣布您的想法。
最佳答案
git revert
只是创建一个与现有提交相反的新提交。
它使文件处于相同的状态,就好像已还原的提交从未存在过一样。例如,请考虑以下简单示例:
$ cd /tmp/example
$ git init
Initialized empty Git repository in /tmp/example/.git/
$ echo "Initial text" > README.md
$ git add README.md
$ git commit -m "initial commit"
[master (root-commit) 3f7522e] initial commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ echo "bad update" > README.md
$ git commit -am "bad update"
[master a1b9870] bad update
1 file changed, 1 insertion(+), 1 deletion(-)
在这个例子中,提交历史有两个提交,最后一个是错误的。使用 git 还原:
$ git revert HEAD
[master 1db4eeb] Revert "bad update"
1 file changed, 1 insertion(+), 1 deletion(-)
日志中会有3次提交:
$ git log --oneline
1db4eeb Revert "bad update"
a1b9870 bad update
3f7522e initial commit
所以对于发生的事情有一致的历史记录,但文件就像从未发生过错误更新一样:
cat README.md
Initial text
要还原的提交在历史记录中的哪个位置并不重要(在上面的示例中,还原最后一次提交 - 可以还原任何提交)。
do you have to do something else after?
git revert
只是另一个提交,例如推送到远程,以便其他用户可以 pull/获取/merge 更改,您就完成了。
Do you have to commit the changes revert made or does revert directly commit to the repo?
git revert
是一个提交 - 没有额外的步骤假设恢复单个提交是你想要做的。
Obviously you'll need to push again and probably announce to the team.
确实 - 如果远程处于不稳定状态 - 与团队的其他成员沟通他们需要 pull 以获得修复(恢复提交)将是正确的做法:)。
关于git - 如何使用 Git 还原,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19032296/
我以这种方式恢复了 merge 提交(功能->开发): git revert -m 1 git push origin develop 已创建新提交 Revert "Merge branch 'fe
我确信我得到了一个很好的答案 my previous question因为我之前从那些发帖的人那里得到了很多关于其他问题的帮助。 但我显然做错了什么,因为当我复制示例代码时,对象检查器向我显示的 My
我现在处于一个非常愚蠢的境地。使用 git-hub for windows 我已经恢复了我最近的两个本地提交,我无法撤消这个(恢复命令)。很多代码都没有了。是否可能恢复还原的提交?我是 git 的新手
我正在使用 TortoiseGit。我想恢复到删除几张图片之前的某个时间点。 我该怎么做,我看到的还原方法是不正确的.... 最佳答案 右键单击您的工作目录并从 TortoiseGit 菜单中选择显示
我们使用 Terraform 在 AWS 中创建所有资源。如果一切按计划进行,那将很方便。但是,我们确实必须考虑出现问题的时间。我们有一个问题是 RDS 实例。它由 Terraform 创建和跟踪。在
跟在后面有什么区别? (右键单击项目文件夹)更新到修订版 XXX (右击日志列表)恢复到这个版本 (右键单击日志列表)还原此修订版的更改 最佳答案 (右键单击项目文件夹)更新到修订版 XXX Your
我不知何故搞砸了我的观点,我想重置它们,但是重置按钮是灰色的。有谁知道会导致这种情况的原因吗? 我希望我有更多的信息,但我真的只知道这些。 最佳答案 转到窗口菜单 => 重置透视图。 编辑: 该选项可
我有一个具有多用户登录功能的应用程序。现在,我为登录功能创建了 redux 存储。如果用户登录,根据其类型,它将重定向到特定的仪表板。如果学生用户登录,他应该只能访问学生仪表板,他不应该能够访问其他仪
我已经恢复了一些更改。需要知道之前恢复的代码中的文件和更改(差异)。 最佳答案 是的,正如 ElpieKay 所说,您可以使用 git log --grep='Revert' 。 还有一个默认消息“
出现错误 ERROR in [at-loader] ./src/app/components/partials/userPartial.tsx:101:33 TS2339: Property 'lev
我不明白为什么主 JS 文件不想从 './actions' 导入 todo 而不带括号? todos from './reducers' 类似的情况,import 没有任何问题。 主 js 文件: i
我像这样以编程方式应用 AngularJS 过滤器: filtered = $filter('number')(value, 2); 这会给我类似 5,000.00 的东西。我需要一种方法来获取过滤后
我正在尝试在我的应用中实现 Redux。所以,我创建了 action、reducer、store 等……现在我必须将状态传递给 reducer 并更改此参数( bool 值)的值。我不知道我做错了什么
我有一个带有如下 DIV 的跨度: Here is my 现在我可以将我的内容设置为跨度,例如: $(.span.foo).text("This removed my inn
我也想将另一个数据库名称下的特定数据库还原到另一台服务器。到目前为止,还不错。 我使用了这个命令: pg_dump -U postgres -F c -O -b -f maindb.dump main
有没有办法回滚上次的提交,放到单独的分支中,以供以后测试?我做了一些我不想完全丢弃的更改,我只是想将它们放在不同的分支中以供进一步测试。 谁能帮我解决这个问题? 最佳答案 是的,您可以实现这一点 -
开发人员正在对两个文件进行小的更改。但是在这次提交期间,他遇到了 merge 冲突,删除了很多东西(可能没有最新的版本)。然后它被推送到共享仓库,其他一些开发人员做了一些其他提交。 现在,我们注意到
git revert 是如何使用的? 这听起来像是一个重复的问题,但当人们问它时,回答通常是,按照 Revert to a commit by a SHA hash in Git? 使用 git re
Cloudflare 已修复其免费开源 CDNJS 中的一个严重漏洞,该漏洞可能影响互联网上 12.7% 的网站。 CDNJS为数百万网站提供超过4000个JavaScript和CSS库,这些库公
为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMy
我是一名优秀的程序员,十分优秀!