首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在从B部门合并时不存在的部门A上恢复执行

在从B部门合并时不存在的部门A上恢复执行
EN

Stack Overflow用户
提问于 2021-12-22 17:38:56
回答 1查看 63关注 0票数 0

我不小心把dev换成了feature-branch,然后推到了遥控器上。根据git undo commit on protected branch?的建议,我采取了以下步骤来撤销dev上的提交并将其提交给feature-branch

dev上,在本地撤消提交并保存它,这样以后我就可以将它提交给feature-branch

  1. git reset --soft HEAD~1
  2. git restore --staged .
  3. git stash
  4. git pull
  5. git revert SHA-1
  6. git commit -m "reverting commit made to wrong branch"
  7. git push

feature-branch

  1. git stash pop
  2. git add .git commit -m "making commit in the right place"

太棒了。此时,dev回到了我错误地在那里提交之前的状态,而feature-branch有了新的更改。然后,我做了更多的工作,并向feature-branch添加了更多的提交。

在创建了从feature-branchdev的拉请求并将其合并后,似乎dev上不存在已恢复的提交。

这里发生了什么事?

现在,我只需要创建一个新分支并手动重写提交,但我不明白为什么这一系列事件导致我在IDE (vscode和git透镜)中看到了差异,但是github告诉我没有区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 21:42:51

tl;dr:,似乎您尝试了两种不同的解决方案来解决相同的问题,但最终没有做您认为做过的事情。

如果您意外地向dev提交了一些东西,并且希望修复它,那么您有两种(类别)方法来处理它:

  1. 您可以reset回到以前的提交,实质上删除最近的提交。
  2. 您可以对提交进行revert .

目前还不清楚您是否在错误的提交上推出了dev,但根据描述,我怀疑您可能没有。在这种情况下,reset应该是最好的选择。如果您已经提交了错误的提交,而其他人可能已经使用了它,那么revert将是最好的。显然,您试图同时完成这两项操作;看起来您首先进行了重置,然后进行了还原。

第一次重置“删除”提交,然后尝试还原不存在的内容将无法工作,因此您将被留在起点。(您还记得在尝试时看到过这样的消息吗?)

注意,如果您以前推出了dev,并决定恢复是一种方法,在重新设置提交后,您将无法在没有强制推送的情况下执行git push

附带注意,要将提交转移到feature-branch,您可以简单地使用它在dev上拥有的散列ID提交cherry-pick,而不是尝试完成存储它的额外工作,我怀疑这是导致您开始沿着这条道路前进的原因。

提示:我强烈建议经常使用git loggit log --graph。考虑使用一个显示分支历史的UI,并在每次提交之后刷新它,这样您就可以确切地看到您在做什么,错误就会变得很明显。

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

https://stackoverflow.com/questions/70453029

复制
相关文章

相似问题

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