我已经通过拆分文件内容并将其移动到单独的文件中,从工作树中删除了该文件。我一次完成了所有这些工作,现在我想将更改作为单独的提交进行提交,每次提交都将大文件的一部分移到新的较小文件中。
即我有:
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
不会产生相同的效果。
所以:有没有办法我可以从已删除的文件中暂存单独的行,并将该删除分散到多个提交中?无需回去,重新启动文件并一次一个地删除文件,这当然是蛮力选项。
答案 0 :(得分:1)
Git没有内置的功能,但是您可以轻松实现它:只需将 empty 文件写入工作树即可。
cycle
或:
cp /dev/null big.txt
例如在典型的Unix / Linux shell中。现在,您的: > big.txt
拥有一个空文件(零字节长),并且可以照常运行big.txt
。
(由于git add -p
将整个删除视为一个大块,但这并不会节省很多精力,但这可能正是您想要的。)