我想我已经搞砸了这里。
我从最后一个到我的代码进行一些更改提交增加新的功能,并实现一些其他的代码现在他反常。 我决定回退到旧的承诺(推到远程为好),以测试是否该功能由当时的工作。
之前我按回退,我承诺我目前所做的更改,因为我不想失去他们。 提交(不推到远程)后,我做了回退到旧提交。 (请注意,有插图中提交了不少提交我摇后盾,和一个我刚才犯)。
所有工作得很好,我的代码还原至该犯。 功能性行为不端那里犯下以及于是我决定回来我最近提交。
不过,我真不知道如何做到这一点,除了回滚到最新的承诺。 但它给了我一个错误。
error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: revert failed
(32768)
现在,它似乎最喜欢的东西都回来,但当前代码的版本是不一样的我的最后一次提交。 它是介于两者之间。 =(
我做错了什么? [我不是问出来的天真,我知道我做错了;)]
什么是这样做的正确方法吗? [我想我应该先支]
我不知道做什么github上为Mac回滚,但似乎你会关闭使用命令行手头解决这个问题更好:
git cherry-pick --abort
-停止任何樱桃采摘进展
git branch -va
-会告诉你在哪里你的指针现在
确保你的工作目录是干净的: git status
-不应该出现任何修改或筹备的文件
git stash
-如果有任何修改仍然存在
git reset --hard your_local_branch github/remote_branch
-使当地分公司反映状态,因为它是在远程端。 很明显,你不需要做复位,如果你的当前分支将指向同一个commit为远程。 如果在分离的头的状态是(GIT状态会告诉你这件事),然后再回到正常状态只是检出当地分行。
现在决定你真正想要达到的目标:
一,摆脱错误的承诺?
使用交互式底垫,并删除错误行提交,然后强制推送到远程的回购在github上(比如说故障发生提交10个提交前)
git rebase -i HEAD~11
II。 恢复错误犯? - 不建议做一些其他的提交后,除非你绝对相信,如下的提交没有触及到同一段代码。 这将有效地创建反向提交(如果是由故障加入线提交它将被复归,反之亦然被移除)
git revert {commit-sha1}
III。 修正错误的承诺? 采用互动变基,但指示它停止在错误提交了修订。 当它停止编辑更改并继续垫底,然后强制推到远程分支(使用从溶液中我变基命令)
大功告成后,如果有什么是藏匿使用git stash pop
带来的变化回来。
希望帮助!
文章来源: Rollback to Previous Commit - Github for MAC (a revert is already in progress)