我正在“在后视图中记录”应用程序开发的历史,通过移动项目目录树的现有快照(然后通过普通和原始文件夹副本保存,而不是git或任何git。其他版本控制。
在努力学习git的新概念和新术语之后,这个迁移过程似乎进展顺利,突然间我发现:“哎呀...我的上一个git commit
+ git branch <branchname>
跳过一个快照。“
由于提交快照的顺序对我很重要,我想完全撤消上一个git commit
+ git branch <branchname>
,,好像它从未完成。< / p>
即Git书中Undoing in Git章节底部定义的“通过修改提交来修复”。
一切仍然是本地的(我没有“发布”,也没有“推”任何东西),所以我认为这符合关于“重写历史”的警告。 :)
根据我的理解,您能否确认或更正以下步骤?
.git
子目录
当然)git checkout <folder-name>
(将工作目录带回
紧接着它的状态
我提交了错误的文件夹和
通过git branch标记它)git branch -D
<branchname-of-mistaken-folder-commit>
git commit --amend
此时我希望git不再记得最后一个分支并且提交已经完成,并且工作目录包含错误的文件夹(我将删除它,完全替换为我跳过的那个)。这是对的吗?
答案 0 :(得分:1)
要删除您刚刚提交的提交,假设您在master
分支上,您只需要执行以下操作:
git branch -D <name of the branch>
删除分支git reset --hard HEAD^
将当前分支重置为上一个提交和使用它的工作目录之后,您可以正常提交忘记的目录,然后提交您重置的目录。