【问题标题】:git commit only modified files as atomic commit, then commit only deleted files as separate atomic commitgit commit 仅将修改的文件作为原子提交,然后仅将已删除的文件作为单独的原子提交提交
【发布时间】:2021-05-19 18:39:26
【问题描述】:

我的git staging 区域中混合有deletednewmodified 文件, 即他们已经全部added 到暂存区,并准备好最终committed 到存储库。

如何通过“状态”而不是使用路径规范来提交文件?

例如,我如何commit(来自staging 区域)仅包含deleted 的文件,但在暂存中保留newmodified 文件?

原因是因为我想使用单独的 cmets 创建单独的原子提交,这些 cmet 更准确/适用于正在提交的文件。

【问题讨论】:

    标签: git git-commit


    【解决方案1】:

    如果可能的话,我会:

    • 重置索引(不再暂存文件)
    • 按状态添加,然后提交

    您可以按状态添加(如shown here):

    git add --all $(git diff --diff-filter=D --name-only)
    

    D 用于删除。使用other filters,如A 用于添加或M 用于修改。

    【讨论】:

    • git reset ... ?
    • @skeetastax 是的,一个简单的git reset 将清空暂存区域,让您有机会再次添加这些文件,这次是按状态(删除、添加或修改)。 git reset 单独(不是 git reset --hard,这也会重置工作树,即您的文件)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2012-08-11
    • 2020-07-03
    • 2012-04-24
    相关资源
    最近更新 更多