如何在不影响未分阶段更改的情况下丢弃 git 中的分阶段更改 [重复]

Posted

技术标签:

【中文标题】如何在不影响未分阶段更改的情况下丢弃 git 中的分阶段更改 [重复]【英文标题】:How to discard staged changes in git without effecting unstaged changes [duplicate] 【发布时间】:2016-05-11 11:58:43 【问题描述】:

为了在我的提交中包含一些未跟踪的文件,我关注了this 的帖子,不小心添加了很多不需要的东西。现在我的回购中有这种情况。

2016-02-02 16:51 Unknown            o Staged changes <--- untracked files
2016-02-02 16:51 Unknown            o Unstaged changes <-- want to preserve
2016-01-04 17:01 XXXXX YYYYY        I [wool_task_conversion] [master] [origin/HEAD] [origin/master] First commit

我现在想将未跟踪的文件带回其原始位置,即未暂存区域,就像以前一样保留未暂存区域中的更改以用于跟踪文件。

【问题讨论】:

如果您的文件是untracked,它们的原始位置会是什么? 【参考方案1】:

如果您查看git status 的输出,它实际上回答了这个问题:

Davids-Mac-Pro:DAD dhoelzer$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   t

因此,只需执行 git reset HEAD &lt;file&gt; 即可满足您的要求。

如果您想在保留更改的同时删除所有分阶段的更改,以下应该是正确的:

 git reset HEAD -- .

这应该从项目的根目录运行。

【讨论】:

我有 1000 个文件要重置。我应该一一做吗? 已更新以回答您的评论。 优秀。感谢您的快速回复。【参考方案2】:

使用,

git resetgit reset --mixed

--混合

重置索引但不重置工作树(即,更改的文件被保留但未标记为提交)并报告 什么还没有更新。 这是默认操作

然后您可以相应地暂存所需的文件。

【讨论】:

以上是关于如何在不影响未分阶段更改的情况下丢弃 git 中的分阶段更改 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在不丢弃其余键的情况下更改对象的键值

如何在不采用其中更改的情况下将 git 分支声明为合并?

如何在不影响密码更改行为的情况下正确防止 ASP.NET Identity 2.2.1 中的多个活动会话?

如何在不影响背景的情况下更改网页内容?

如何在不影响设备音量的情况下使用 MPMusicPlayerController 更改音量

如何在不影响现有列宽的情况下更改列数据类型