如何 git 还原一个特定文件的更改,而我的提交更改也涉及其他文件? [复制]

Posted

技术标签:

【中文标题】如何 git 还原一个特定文件的更改,而我的提交更改也涉及其他文件? [复制]【英文标题】:How to git revert the changes of one specific file, while my commits changes are involving other files as well? [duplicate] 【发布时间】:2019-04-02 12:36:31 【问题描述】:

案例场景

假设我有 3 个文件:

 Dir/
     a.py
     b.py
     c.py

我有 10 次提交,每一次都涉及对所有这三个文件的更改。

例如,带有哈希码 ABCD 的提交从 a 更改了 3 行,从 b 更改了 10 行,从 c 更改了 1 行。同样代表提交的其余部分。

那时我意识到文件 a.py 中所做的所有更改都是无用的。

    如何在不恢复其他两个文件的更改的情况下恢复文件 a.py 的所有更改? 处理这种情况的最佳做法是什么?

【问题讨论】:

【参考方案1】:

这样就可以了:git checkout <commit_hash> -- <file>

它会将此特定文件重置为指定的提交。

【讨论】:

谢谢,解决了我的问题

以上是关于如何 git 还原一个特定文件的更改,而我的提交更改也涉及其他文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Git 中,如何恢复在提交之前还原的暂存文件?

如何从特定修订版更改 GIT 中提交的作者 [重复]

sh Git:将文件还原为特定提交

如何解决还原提交冲突

如何修复还原的 git 提交?

Git仅还原提交中的一些文件[重复]