代码之家  ›  专栏  ›  技术社区  ›  RLH

如何在VS中撤消暂存的更改,而不覆盖更改集中的文件更改?

  •  0
  • RLH  · 技术社区  · 7 年前

    我有一个使用git的Visual Studio项目。在“团队探索”>“更改”窗口中,我在“阶段更改”区域中进行了一系列更改。问题是,这些旧的、分阶段的更改不再与在“更改”区域中完成的工作兼容。

    在提交之前,如何丢弃所有的阶段性更改,但保留所有的更改?或者,我怎样才能只提交“changes”集中的更改,而不提交staging中的内容?如果我能做到这一点,我就可以删除我提交后正在准备的内容。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Chad B    7 年前

    取消暂存对文件的暂存更改时的更改页行为取决于该文件是否也只有workdir更改。

    如果一个文件只有暂存的更改,取消暂存将从索引中删除这些更改,但将文件的内容保留在workdir版本中。然后,您可以选择同一个文件并撤消workdir更改,以返回到文件内容的最后提交版本。

    希望这有帮助。

        2
  •  0
  •   Arun    7 年前

    我想你在这里提到的是同一个分支提交。因此,您有本地提交的本地更改,这些更改从未被推送到。现在 remote 在此分支上有一些更新,您希望在不丢失本地提交的情况下进行更新。

    例子: 如果当前分支是 featureA 你在哪里 staged changes featureA <remote>

    如果是这样,请在本地当前分支的基础上创建另一个分支。

    git checkout -b featureB 所以, featureB 羽毛尿素 分支。

    git checkout featureA

    git reset --hard origin/featureA 注: 这将重置您的本地 羽毛尿素 匹配 . 所以它删除了这个分支上的本地提交更改 羽毛尿素 但是, 特性B

    现在以后你可以结帐到 任何时候在你的本地,你有你的变化。

    如果您希望将来使用这些提交中的任何一个 羽毛尿素 使用 cherry-pick

    git cherry-pick <commit-hash> 羽毛尿素 你提到过的那些散列。如果你有 n feartureB 。为所有人做这个 n个 承诺