可以提交某些文件的空版本吗?具体情况是我需要将新(未跟踪的)非空文件首先添加并提交为“空”文件,以标记其内容为新内容并进行审查(完整的未跟踪文件不应添加到索引中; git diff应通过将文件与其提交的空版本进行比较来显示新添加的内容)。
有一个命令git add -N file...,它将file与空内容放入索引中,但这只表示file将被添加,git commit会抱怨文件尚未添加。问题在于当前的非空版本不是必须添加的内容,只需要新文件的空版本。
有没有办法做到这一点?
PS:这个问题是在一个程序自动向git仓库添加文件的背景下提出的(我的程序跟随代码学生编写)。未提交的代码是我尚未批准的代码。因此,由学生创建的程序的状态应该是“空”状态,即使我的程序只是在他们的主目录中找到了新的非空程序;这通过自动提交任何新的学生程序文件的新的空版本到git仓库来处理。因此,他们编写的新代码行显示为与上一个提交的git修订版相比的新添加内容。
有一个命令git add -N file...,它将file与空内容放入索引中,但这只表示file将被添加,git commit会抱怨文件尚未添加。问题在于当前的非空版本不是必须添加的内容,只需要新文件的空版本。
有没有办法做到这一点?
PS:这个问题是在一个程序自动向git仓库添加文件的背景下提出的(我的程序跟随代码学生编写)。未提交的代码是我尚未批准的代码。因此,由学生创建的程序的状态应该是“空”状态,即使我的程序只是在他们的主目录中找到了新的非空程序;这通过自动提交任何新的学生程序文件的新的空版本到git仓库来处理。因此,他们编写的新代码行显示为与上一个提交的git修订版相比的新添加内容。
touch empty-file && git add empty-file && git commit
对我来说是有效的。 - joschigit diff
在新创建的文件上可以正常工作。如果您在文件不存在时对其进行 diff,然后与其包含内容时进行 diff,则会看到所有添加的行,这与对空文件进行比较的精确相同的 diff(只有 modelines 不同)。 - Cascabel