如何在暂存区域中恢复文件的块?

时间:2015-03-18 20:19:57

标签: git

我的暂存区域中有一个文件,我想要取消它的一大块。 我知道我可以使用以下命令:

 git reset --patch -- <my_file>

但在我的情况下,名称文件已重命名,每次我尝试验证重置时,都会出现以下错误:

  

致命:新文件my_file取决于旧内容

有没有办法做我需要的?或者我搞砸了?

编辑:

在发布此问题之前,我已阅读以下文档:

编辑:

Git状态输出:

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        renamed:    src/MyBundle/Config.php -> src/MyBundle/QueryConfig/Config.php

在重命名过程中,我想保留一些更改(命名空间更改),但我想放弃其他更改(与命名空间更改无关)以便稍后提交。

2 个答案:

答案 0 :(得分:2)

要取消使用块:

git reset HEAD -p <filename>

之后,您可以使用

重置更改
git checkout -p <path to file>

答案 1 :(得分:2)

所以最后我找到了一个适合我的过程:

  1. 我将文件移回原来的位置
  2. 我还原了我不想包含在提交中的块
  3. 我将文件移至最终位置
  4. 以下是命令:

    git mv <final_path>/<file> <original_path>/<file>
    git reset -p <original_path>/<file>
    git mv <original_path>/<file> <final_path>/<file>
    

    @MatzZze即使我没有使用您的解决方案,我也感谢您的帮助。非常感谢。