【问题标题】:Revert / Undo Git Rebase onto in Android Studio在 Android Studio 中恢复/撤消 Git Rebase
【发布时间】:2017-11-20 07:41:13
【问题描述】:

今天我遇到了一个意外发生在我身上的问题。

对于我目前的项目,我的工作室有两个本地分支机构。

当地分支机构:

a) master(被动分支)

b) 帐户(活动分支)

在远程服务器上也是如此。

昨天我将本地 Account 分支推送到 Remote。

我的问题:

首先我结帐到本地 master 分支,然后我点击本地 Account 分支并点击 Rebase to... :(

现在我的两个分支都显示了相同的文件和目录结构。

Android Studio 显示类似

的消息

a)Gradles 项目同步失败。(基本功能不起作用)

b)Module SDK 未定义。

在每个文件中,所有导入的模块和库都显示错误。

我读到了 Rebase,但我不清楚它在我的案例中做了什么。

我的问题:

我该怎么做才能恢复正常?

我不明白,为什么两个分支都收到相同的 gradle 消息。

它是否也影响到我的远程文件?

我可以从本地历史还原吗?

【问题讨论】:

  • 顺便说一句,这个问题有什么问题?
  • 谁能解释一下我的问题:)

标签: git android-studio rebase


【解决方案1】:

这很简单。首先,在 Android Studio 中打开 VCS 选项卡。

在栏的顶部,您会看到它显示日志:

右键单击任何给定的修订并选择“签出修订”。然后使用checkout commandreverting from the commandline上的示例用法

或者,您可以使用还原按钮:

但是你只能使用它恢复到最后一次提交,所以如果你想更进一步,使用第一种方法更容易

不,您无法使用本地历史记录进行还原。这是特定于文件的历史记录,而不是 VCS 历史记录。单个无效缓存并重新启动会擦除此历史记录,因此使用起来不可靠。在这些情况下使用 VCS 会更好,尤其是当您已经安装了 Git 并在项目中处于活动状态时

【讨论】:

  • 这就是我想要的,谢谢
【解决方案2】:

我不确定您是否可以在 Android Studio 中执行此操作,但在控制台上肯定可以。检查git reflog (https://git-scm.com/docs/git-reflog)。

您可以输入git reflog 并检查您想要恢复到的位置,然后输入git reset 'HEAD@{1}。 (根据git reflog的输出替换HEAD@{1}

【讨论】:

  • 您不必成为 git 命令行专家也能做到这一点。只需打开命令行并转到存储库的目录并输入git reflog
  • 我会尝试,但我在想如果我可以用工作室来做,我不能为此使用本地历史记录中的还原选项吗?
  • @AshishShukla 本地历史不是 VCS 历史
【解决方案3】:

VCS 菜单中有一些选项 -> Git 子菜单包括 abort rebase 以撤消 rebase。其他选项是跳过并继续变基。

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 2017-11-08
    • 2012-06-10
    • 2011-01-13
    • 1970-01-01
    • 2021-02-17
    • 2023-03-10
    相关资源
    最近更新 更多