撤消git commit + git branch <branchname> - 带有扭曲</branchname>

时间:2011-07-09 16:54:38

标签: git git-branch git-commit

我正在“在后视图中记录”应用程序开发的历史,通过移动项目目录树的现有快照(然后通过普通和原始文件夹副本保存,而不是git或任何git。其他版本控制。

在努力学习git的新概念和新术语之后,这个迁移过程似乎进展顺利,突然间我发现:“哎呀...我的上一个git commit + git branch <branchname>跳过一个快照。“

由于提交快照的顺序对我很重要,我想完全撤消上一个git commit + git branch <branchname>,好像它从未完成。< / p>

即Git书中Undoing in Git章节底部定义的“通过修改提交来修复”。

一切仍然是本地的(我没有“发布”,也没有“推”任何东西),所以我认为这符合关于“重写历史”的警告。 :)

根据我的理解,您能否确认或更正以下步骤?

  1. 清空工作目录(不含 删除.git子目录 当然)
  2. git checkout <folder-name> (将工作目录带回 紧接着它的状态 我提交了错误的文件夹和 通过git branch标记它)
  3. git branch -D <branchname-of-mistaken-folder-commit>
  4. git commit --amend
  5. 此时我希望git不再记得最后一个分支并且提交已经完成,并且工作目录包含错误的文件夹(我将删除它,完全替换为我跳过的那个)。这是对的吗?

1 个答案:

答案 0 :(得分:1)

要删除您刚刚提交的提交,假设您在master分支上,您只需要执行以下操作:

  1. git branch -D <name of the branch>删除分支
  2. git reset --hard HEAD^将当前分支重置为上一个提交和使用它的工作目录
  3. 之后,您可以正常提交忘记的目录,然后提交您重置的目录。