【问题标题】:Going back to a previous commit in Android Studio回到 Android Studio 中的上一个提交
【发布时间】:2018-12-22 08:50:00
【问题描述】:

所以我在大约四次提交前对我的项目进行了错误的更改。我了解到我可以恢复到here 所描述的之前的状态,并且通过依次检查之前的提交(并在我的设备上测试它们)我已经确定了问题发生的位置。

现在我想回到刚刚之前的状态坏的变化,然后重新做后续的变化(当然除了坏的变化)。没有那么多,所以我可以手动完成它们,但我的问题更多是关于如何处理 git commit/push 过程,这样我就不会弄乱我的 repo。

所以,一旦我检查了旧的提交(最后一个“好”的提交),我是否可以进行进一步的代码更改,然后像往常一样提交并将它们推送到我的仓库,或者我现在正在进行某种我需要合并回主分支的侧分支?

【问题讨论】:

    标签: git android-studio version-control


    【解决方案1】:

    首先,这将是一个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 RootBranch 的含义一目了然。
    有趣的部分是Onto 字段。
    这必须是我们希望在交互式 rebase 中看到的第一个提交。
    在上面的示例中,这将是 HEAD~2
    单击Start rebasing 后,Studio 将向我们展示另一个窗口,我们可以在其中决定提交的信仰:

    【讨论】:

    • 谢谢。如果我通过 Android Studio 的版本控制选项卡进行所有操作(即不是命令行),那么最好的方法是什么?
    • @drmrbrewer 我已经编辑了答案,为交互式 rebase 添加了 Android Studio 插图。
    • 快速跟进问题(相关):如果我检查了历史中的不同修订版进行测试,然后我决定“回到顶部”,我可以查看最新的修订版吗(在顶部),然后像以前一样继续进行进一步的代码编辑和提交/推送,而不采取任何特殊措施(例如变基)来回到 repo 的正轨?
    • 是的,如果你只推送新的提交,那么定期推送就足够了。
    • @drmrbrewer 干得好。在这些情况下,返回命令行通常更容易。
    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2016-06-21
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多