如何从Git中已删除的文件暂存单个行?

时间:2020-01-28 14:04:12

标签: git git-gui

我已经通过拆分文件内容并将其移动到单独的文件中,从工作树中删除了该文件。我一次完成了所有这些工作,现在我想将更改作为单独的提交进行提交,每次提交都将大文件的一部分移到新的较小文件中。

即我有:

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    big.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        small-1.txt
        small-2.txt
        small-3.txt
        small-4.txt

no changes added to commit (use "git add" and/or "git commit -a")

通常,在暂存我的更改时,我只选择与该提交相关的块或行(使用git gui,例如,或git add -p)。但是,当我尝试删除文件时,我的请求将被忽略-它要么是整个文件,要么什么都没有。

我知道我可以在未跟踪的文件上使用git add -N来指定要添加的文件,然后从该文件中选择单独的行以添加其第一次提交。但是在已删除的文件上运行git add -N不会产生相同的效果。

所以:有没有办法我可以从已删除的文件中暂存单独的行,并将该删除分散到多个提交中?无需回去,重新启动文件并一次一个地删除文件,这当然是蛮力选项。

1 个答案:

答案 0 :(得分:1)

Git没有内置的功能,但是您可以轻松实现它:只需将 empty 文件写入工作树即可。

cycle

或:

cp /dev/null big.txt

例如在典型的Unix / Linux shell中。现在,您的: > big.txt 拥有一个空文件(零字节长),并且可以照常运行big.txt

(由于git add -p将整个删除视为一个大块,但这并不会节省很多精力,但这可能正是您想要的。)

相关问题