1

我正在处理一个文件,我提交了一些更改,然后我意识到我想要我最近在旧提交中所做的一些更改,因为它是旧提交的一部分。

所以,我想回到提交 2c57de7 并在同一个提交中添加一些我还没有添加到暂存区域的更改。我不想创建新的提交。

  • 我尝试了 Detached HEAD 状态,但是在 2c57de7 提交之后我不知道如何合并分支。
  • 我尝试了交互式 rebase 选项,方法是存储我当前的工作并在 2c57de7 提交时弹出工作并重置提交,以便我可以添加修改后的文件。但是我有很多合并冲突。如果有一篇关于如何解决合并冲突的文章,那将非常有帮助!
  • 我尝试创建一个新分支,将该分支恢复到那个旧提交,进行更改,然后将该分支的尖端合并回来,但它不起作用。
* 59939c3 - Sun, 16 Jan 2022 14:19:40 +0530 (3 hours ago) (HEAD -> main)
|           Problems - Added Problem 03
* 2c57de7 - Sun, 16 Jan 2022 12:52:04 +0530 (4 hours ago)
|           Problems - Added Problem 02
| * 3031e71 - Sun, 16 Jan 2022 13:37:14 +0530 (3 hours ago) (Trees)
| |           Level Wise
| * 7aaa1dd - Sun, 16 Jan 2022 12:44:59 +0530 (4 hours ago)
| |           Introduction
| * 5c26db8 - Sat, 15 Jan 2022 18:13:23 +0530 (23 hours ago)
|/            Vectors
* 692c42e - Wed, 12 Jan 2022 19:10:02 +0530 (4 days ago)
|           Problems - Added Problem 01

这是我的提交历史

任何帮助,将不胜感激!

4

1 回答 1

1

这也更新了所有以下提交

这意味着您需要在更新的旧提交之上重新调整这些后续提交。

从您当前的主要内容:

git branch tmp
git stash
git switch -C main 2c57de7  # reset main back to 2c57de7 
git stash pop
git add .
git commit --amend -m "Problems - Added Problem 02, amended"
git switch tmp
git rebase main
git switch main
git merge tmp
git branch -d tmp
于 2022-01-18T08:13:57.613 回答