【问题标题】:How can I use Git to add new commits to the current branch based on a previous commit in that same branch?如何使用 Git 根据同一分支中的先前提交向当前分支添加新提交?
【发布时间】:2013-01-15 02:24:06
【问题描述】:

假设我的 git 日志中有 2 次提交。现在我想回到第一次提交并修改一些文件并将其添加为第三次提交。当我输入 git log 时,我希望在同一个分支上有 3 个提交。 git reset --soft firstcommit 然后再次提交会擦除我的第二次提交。如何实现我想要的?

【问题讨论】:

  • 你能描述一下最后的日志是什么样的吗?
  • 我希望日志有第一次提交、第二次提交以及第三次提交条目。但在 git 中,它只显示了第一次和第三次提交
  • 第一次提交你想要什么?它引入的更改或文件的状态?您是否希望第三次提交撤消在第二次提交中应用的更改。
  • 假设我刚刚意识到我想添加一个新功能,并且从第一次提交开始这样做会更容易,我想回到第一次提交添加该功能并提交它。但我不希望第二次提交丢失,因为它具有第三次提交没有的其他一些功能。我知道这不是一个完美的例子,但我想它解释了这种情况

标签: git revision-history


【解决方案1】:

假设你现在在第三次提交。

您可以使用git cherry-pick secondcommit 找回它。

日志将是

firstcommit -> thirdcommit -> secondcommit

如果你希望日志是这样的:

firstcommit -> secondcommit -> thridcommit

你可以这样做:

git reset --hard secondcommit
git cherry-pick thridcommit

【讨论】:

  • 我不知道第二次提交的 sha,因为它没有显示在 git 日志中
  • 您可以使用git reflog 找到它。
猜你喜欢
  • 2011-02-18
  • 1970-01-01
  • 2012-07-03
  • 2020-05-07
  • 2018-04-22
  • 2016-03-01
  • 2019-09-29
  • 2020-06-24
相关资源
最近更新 更多