如果你想撤销本地的提交,并在切换到另一个分支之后再重新提交这些更改,可以按照以下步骤操作。我们假设你的当前分支是 main
,并且你想切换到 feature
分支然后再重新提交你的更改。
1. 查看提交历史
首先,查看你当前分支的提交历史,以确认你想撤销的提交。
假设你有以下提交历史:
2. 使用 git reset
撤销提交
保存更改,撤销提交:
HEAD~1
表示上一条提交。--soft
选项保留你的更改在暂存区,这样你可以在不同分支中重新提交。
执行完成后会发现,已经提交的文件回到了暂存区
3. 切换到目标分支
如果目标分支已经存在:
如果目标分支不存在,可以通过以下命令创建并切换到新分支:
4. 提交更改
现在你已经在目标分支上,并且你的更改仍然保留在暂存区。你可以重新提交这些更改:
5. 检查结果
查看新的分支提交历史,确认更改已经提交:
示例完整流程
- 查看提交历史:
- 撤销最近的提交,保留更改:
- 切换到目标分支(假设目标分支为
feature
)并创建该分支:
- 重新提交更改:
- 查看新的提交历史:
注意事项
- 使用
git reset --soft
可以保留更改在暂存区。如果你不想这一步暂存这些更改,可以使用git reset --mixed
,它会保留更改在工作区(工作目录),但不会在暂存区。 git checkout -b feature
命令会创建并切换到feature
分支。如果feature
分支已经存在,请直接使用git checkout feature
。
其他方法:使用 git stash
有时,你可以使用 git stash
暂时存储更改,然后切换分支并应用更改:
- 储藏更改:
- 切换到目标分支:
- 应用储藏的更改:
- 重新提交更改:
这会将未提交的更改储藏起来,切换分支后重新应用这些更改,并在目标分支上提交。选择最适合您工作流程的方法。