【问题标题】:What are the differences between Revert in Git in Visual Studio 2019 and Android Studio 3.5.3?Visual Studio 2019 和 Android Studio 3.5.3 中的 Git 中的 Revert 有什么区别?
【发布时间】:2020-04-23 23:00:59
【问题描述】:

我可以在 Andriod Studio 中使用“Revert”来放弃我在 Android Studio 3.5.3 中最新提交的所有更改,如图 1 所示。

我希望在 Vs 2019 中进行相同的操作,通过单击 Android Studio 中的“还原”来放弃所有更改。 Visual Studio 2019 中也有 Revert 命令,但我不知道 Vs 2009 中的 Revert 做了什么操作,你可以在图 2 中看到我的意思。

如果我对该项目进行一些修改,当我在 Vs 2019 中启动 Revert 时会出现错误(见图 3)。

如果我不对这个项目进行任何更改,当我在 Vs 2019 中启动 Revert 时,将创建一个名为“Revert Test 3”的新记录(参见图 4)。我不知道“恢复测试 3”是什么意思。

图片 1

图片 2

图 3

图 4

【问题讨论】:

    标签: git visual-studio android-studio github


    【解决方案1】:

    这只是糟糕的术语。

    Android Studio 的“revert”不会执行“Git Revert”,而是执行“Git Reset”。这将丢弃自上次提交以来未提交的更改。

    Visual Studio 实际上做了一个还原,即进行一个新的提交,其中最新提交的更改被退回。

    另见What's the difference between Git Revert, Checkout and Reset?

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,然后我尝试使用其他几个命令来模拟 git revert 命令

      git fetch origin <LastCommitId>

      git reset --hard FETCH_HEAD

      执行这些命令,你的 vscode 肯定会将代码恢复到以前的版本。

      【讨论】:

        【解决方案3】:

        "Revert "Test 3"" 将为您创建一个提交,以还原您在 Test 3 提交中所做的所有更改。

        例如,您有一个提交,您通过某种方法将公共更改为私有。如果您查看该提交的代码更改,您会发现您从公共更改为私有。 然后,当您进行还原时,新提交(还原“测试 3”)将更改代码,将方法从 Private 更改为 Public。

        如果您想恢复不是最新提交的提交,这特别有用。

        您在图 2 中收到错误的原因是,当您在代码中有未暂存的更改时,您无法恢复提交。

        我不确定 Android Studio 中的 revert 功能,但如果它按照您的说明工作,Visual stuido revert 和 Android studio Revert 是相同的。不同的 git 扩展工具会以不同的方式处理操作。

        安卓工作室 提交 1 提交 2

        恢复提交 2 将使代码的状态与提交 1 相同。

        视觉工作室 提交 1 提交 2

        Reverting Commit 2 将创建一个新的提交 "Revert "Commit 2"" 但最新提交中的代码状态仍将与 Commit 1 中的状态相同。

        【讨论】:

          猜你喜欢
          • 2019-07-29
          • 1970-01-01
          • 2010-10-08
          • 1970-01-01
          • 2015-01-17
          • 1970-01-01
          • 2021-05-19
          • 2012-01-11
          • 1970-01-01
          相关资源
          最近更新 更多