【问题标题】:Unstage committed changes but keep new files in index取消提交的更改,但将新文件保留在索引中
【发布时间】:2017-03-12 05:35:23
【问题描述】:

我想将最后一个提交分成两部分,所以我使用git reset HEAD~1,但是它会丢失提交添加的新文件(之前没有跟踪),我必须小心添加它们一一回。我经常有其他未跟踪的文件等待稍后提交,所以这很烦人。

我想要的是一种reset 的方法,但将提交添加的文件保持为空,就好像它们已经添加了git add --intent-to-add(即git add -N)。

【问题讨论】:

    标签: git git-reset git-add


    【解决方案1】:

    也许我不是很了解,但这不是git reset --soft吗?

    【讨论】:

    • 不是真的,因为我想从这些更改中做出几个新的提交,所以我仍然想有选择地添加东西而不是让所有东西都已经上演。希望这是有道理的,如果不清楚,对不起!
    • 因此,只需 git reset HEAD 即可取消暂存更改的文件,然后您可以在提交时添加它们。
    • 关键是它失去了对新文件的跟踪(在提交之前没有跟踪)。我意识到“添加”一词在 git 的上下文中令人困惑。我已经把问题说得更清楚了。
    【解决方案2】:

    在仔细阅读the doc之后,我找到了答案。

    这正是我想要的:git reset --mixed -N HEAD~1

    【讨论】:

    • --mixed 是默认操作。所以你可以指定git reset -N HEAD~1
    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 2019-04-28
    • 2012-04-28
    • 2021-09-17
    • 1970-01-01
    • 2016-07-05
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多