因此,大约在四次提交之前,我对项目进行了重大更改。我了解到,我可以按照here的描述恢复到先前的状态,并且通过依次检出先前的提交(并在我的设备上对其进行测试),我已经确定了问题出在哪里。
现在,我想回到错误更改之前的状态,然后重新执行后续更改(当然,错误更改除外)。没有那么多,所以我可以手动进行操作,但是我的问题更多是关于如何处理git commit / push过程,以免弄乱我的仓库。
因此,一旦我签出了旧的提交(最后一个“好”的提交),我是否可以再进行进一步的代码更改,然后像往常一样提交并将其推送到我的存储库中,或者我现在是否在某种程度上我需要在主分支上合并回来的分支?
答案 0 :(得分:2)
首先,这将是一个interactive rebase,您可以在其中重播提交,但删除不好的提交:
git rebase -i SHA1-before-bad-commit
第二,这将重写存储库的历史记录,这意味着之后需要git push --force
。如果您是唯一在该存储库上工作的人,那没关系。
对于Android Studio,请参见 Rebasing in Android Studio 中的“ Gyula Juhász”:
在Android Studio中,可以相对容易地实现相同目的。
VCS / Git / Rebase
是必须选择的菜单项,它将显示以下对话框:
Git Root
和Branch
的含义很容易找出。
有趣的部分是Onto
字段。
这必须是我们希望在交互式rebase中看到的第一个提交。
在上面的示例中,该名称为HEAD~2
。
点击Start rebasing
之后,Studio将向我们展示另一个窗口,我们可以在其中确定提交的信念: