回滚到Previous Commit - 用于MAC的Github(恢复已在进行中)

tGi*_*ani 17 git version-control github github-for-mac

我想我已经搞砸了.

我对上一次提交添加新功能的代码进行了一些更改,并意识到其他一些代码现在表现得很奇怪.我决定回滚到旧的提交(也推送到远程)以便测试该功能是否正常工作.

在我按下Rollback之前,我提交了我目前所做的更改,因为我不想丢失它们.提交后(不推送到远程),我做了回滚到旧提交.(请注意,在我支持的提交和刚才提交的提交之间有相当多的提交.

一切正常,我的代码恢复到该提交.功能在那个提交中也行为不端,所以我决定回到我最近的提交.

但是,除了回滚到最新提交之外,我不知道如何做到这一点.但它给了我一个错误.

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: revert failed
(32768)
Run Code Online (Sandbox Code Playgroud)

现在,似乎大部分事情都回来了,但是当前版本的代码与我上次提交的代码不同.介于两者之间.=(

我做错了什么?[我不是在说无罪,我知道我做错了;)]

这样做的正确方法是什么?[我想我应该先分支]

Eug*_*ine 23

我不知道Mac回滚的github是什么,但似乎你最好使用命令行来解决手头的问题:

git cherry-pick --abort - 停止正在进行的任何樱桃采摘

git branch -va - 会告诉你现在指针在哪里

确保您的工作目录是干净的: git status- 不应显示任何已修改或暂存的文件

git stash - 如果有任何修改仍然存在

git reset --hard your_local_branch github/remote_branch - 使本地分支反映远程端的状态.显然,如果当前分支指向与远程相同的提交,则不需要执行重置.如果你处于分离的HEAD状态(git状态会告诉你)然后回到正常状态只需检查你的本地分支.

现在决定你真正想要实现的目标:

我摆脱了错误的提交?

使用交互式rebase并删除有错误提交的行,然后强制推送到github上的远程仓库(说错误提交发生10次提交前)

git rebase -i HEAD~11

II.恢复错误提交? - 不建议在其他提交之后执行此操作,除非您完全确定以下提交未触及相同的代码.这将有效地创建反向提交(如果通过错误提交添加行,则将通过恢复删除,反之亦然)

git revert {commit-sha1}

III.修改错误的提交?使用交互式rebase,但指示它停止错误提交以进行修改.当它确实停止编辑更改并继续重新定位时,然后强制推送到远程分支(使用解决方案I中的rebase命令)

完成后,如果有任何东西被搁置,请使用git stash pop以恢复更改.

希望有所帮助!