Git:取消提交的命令

Trầ*_* Dự 0 git

当我工作时,我经常遇到这个工作流程:

  1. 做点什么
  2. 有人来到我的办公桌前询问一些事情,我必须搬到另一个分店进行检查.
  3. 我在当前分支上提交代码并签出另一个分支.
  4. 当我完成时,我会检查旧分支并继续工作.

此工作流程有一个缺点:它在我的系统中生成虚拟提交.我的问题是:我怎样才能避免这种情况?例如,当我回来工作时,我将取消之前的提交?

Jon*_*eet 6

除了现有的两个答案(git resetgit stash)之外,我个人只是忽略了额外的提交(几乎有一个提交消息wip......),直到我准备将更改推送到远程位置,例如到github创建一个拉取请求.

那时,我git rebase -i用来查看我在该分支中提交的所有提交,并计算出我想要推送的提交 - 将提交压缩在一起并根据需要重写提交消息.

我个人发现这比使用起来更容易git stash,因为我通常会发现我忘记了什么东西是什么意思.(我的错,而不是在Git中的一个缺陷,但效果仍然不好.)我怀疑git reset将被罚款过,但因为我经常要变基反正最后的合并之前-例如为了应对代码审查意见-我有git rebase作为我的工作流程中更具智力的部分.