我正在“事后记录”应用程序开发的历史,通过移动项目目录树的现有快照(这些快照由普通和原始文件夹副本保存,而不是 git 或任何其他版本控制)混帐。
在努力学习 git 的新概念和新术语之后,这个迁移过程似乎进展顺利,突然我发现:“糟糕……我的最后一个git commit
+git branch <branchname>
跳过了一个快照。”
由于提交快照的顺序对我很重要,我想完全撤消最后一个git commit
+ git branch <branchname>
,就好像它从未完成一样。
也就是说,“通过修改提交来修复”,如Git 书籍的Undoing in Git一章底部所定义。
一切仍然是本地的(我还没有“发布”也没有“推送”任何东西),所以我相信这符合关于“重写历史”的警告。:)
根据我的理解,您能否确认或更正以下所需的步骤?
- 清空工作目录(
.git
当然不删除子目录) git checkout <folder-name>
(在我提交错误的文件夹并通过 git 分支对其进行标记后立即将工作目录恢复到状态)git branch -D <branchname-of-mistaken-folder-commit>
git commit --amend
在这一点上,我希望 git 不再记得最后一个分支和提交已经完成,并且工作目录包含错误的文件夹(我将删除它,完全替换为我跳过的那个)。这个对吗?