首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除本地git存储库中的最后一次提交

如何删除本地git存储库中的最后一次提交
EN

Stack Overflow用户
提问于 2010-04-11 22:44:23
回答 4查看 53.2K关注 0票数 36

当我做'git拉‘,我有冲突的头部承诺。所以我做了一个“重基--中止”

我可以“保存”我的承诺到一个“补丁”,然后做一个git拉?

我想模仿的是:

  • ,我没有提交,但我做了一个'git藏‘,而
  • 做了git拉,以避免任何合并错误

所以我需要“让时钟倒转”。吉特有这个可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-11 23:09:25

您的7826b2修补程序在拔出后应用时仍然会引起冲突,但您可以执行以下操作:

代码语言:javascript
运行
复制
git reset --soft HEAD^
git stash
git pull
git stash pop # Will cause a conflict
git commit    # Re-commit 7826b2

另一个工作流程也是可能的:

代码语言:javascript
运行
复制
git reset --hard HEAD^
git pull
git cherry-pick 7826b2 # Will cause a conflict

第二个工作流依赖于这样一个事实,即Git将7826b2提交保留在reflog中(您可以将它看作是回收站),即使您用第一行重置了它引入的更改。

票数 83
EN

Stack Overflow用户

发布于 2010-04-14 14:57:50

如果您确实在本地存储库中提交了您的更改,则可以直接进行重基:

git提取原点

git重基原点/母版

这将从本地主机释放本地提交,从源/主应用新提交,然后重放本地提交。

在您的情况下,这将导致冲突,git将告诉您需要编辑哪些文件来解决冲突。这样做之后,将这些文件git add,然后在没有参数的情况下使用git commit重新进行更改。

票数 8
EN

Stack Overflow用户

发布于 2016-01-12 19:39:50

首先,我建议备份一下您的分支:

代码语言:javascript
运行
复制
git branch your_branch_backup

那么最简单的方法是:

代码语言:javascript
运行
复制
git reset --soft <commit> #Go back in time but without loosing your changes
git stash                 #Stash your changes
git pull                  #Refresh your branch with origin
git stash pop             #Re-apply your changes on the refreshed branch 

然后你就可以像往常一样提交

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2618989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档