git可以提交一些文件的空版本吗?相关的例子是,我需要先添加新的(未跟踪)文件,并承诺为空文件,从而为他们的内容标记为新的,进行审查(完整的,未跟踪文件应该不会被添加到索引; git diff应该通过将文件与其提交的空版本进行比较来显示新添加的内容.
有一个git add -N file…,它file在索引file 中添加了一个空内容,但这只会说会添加,并git commit抱怨该文件尚未添加.问题是当前的非空版本不是必须添加的,而只是新文件的空版本.
有没有办法做到这一点?
PS:这个问题是在一个自动将文件添加到git存储库的程序的上下文中询问的(我的程序遵循学生编写的代码).未提交的代码是我尚未批准的代码.因此,即使我的程序刚刚在其主目录中找到一个新的非空程序,学生创建的程序启动的状态应该是空状态.这是通过在git存储库中自动提交任何新学生程序文件的新的空版本来处理的.因此,与上次提交的git修订版相比,它们编写的新代码行显示为新添加的内容.
Sve*_*ach 33
说实话,我真的不明白这对什么有用.我会尝试修复审核流程,而不是弄乱历史记录.但如果你真的想这样做,这里有几种方法:
务实的方法:
mv file out-of-way
touch file
git add file
mv out-of-way file
Run Code Online (Sandbox Code Playgroud)瓷器方法:
git add -N file
git add -p file
Run Code Online (Sandbox Code Playgroud)
...当被问到是否应该添加单个大块时,只回答"否".
管道方法:
首先,确保对象数据库中存在空对象:
git hash-object -w --stdin < /dev/null
Run Code Online (Sandbox Code Playgroud)
这将返回空blob的SHA1(即e69de29bb2d1d6434b8b29ae775ad8c2e48c5391).您只需创建一次此对象.现在,您可以在索引中创建空文件
git update-index --add --cacheinfo 0644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
7134 次 |
| 最近记录: |