如何Git提交第二个空文件而不删除第一个非空文件?

时间:2014-06-24 21:35:59

标签: git git-add

使用Git,版本1.9.3,在Fedora,版本20上,我反复遇到这样的问题:我无法提交空的bar文件而不让Git认为我删除了以前版本化的非空{ {1}}文件。这两个文件碰巧都存在于同一个文件夹中。我添加和提交空foo文件的命令如下所示:

bar

您是否对我观察到的Git行为有解释?任何解决方案?

1 个答案:

答案 0 :(得分:0)

我单独误解git add --intend-to-add -- bar以向索引添加空条目。 Git允许我在这种状态下提交索引,导致空提交,就像我写了git add --allow-empty一样。但是空提交很清楚我想要什么。我想要的是对应于以下命令序列:

echo foo > bar
git add --intent-to-add -- bar
git add --patch -- bar
# Edit (e) the hunk to be staged and make it empty.
git commit --message 'add empty bar file.'
git log --oneline --name-status -1
# 1234567 add empty bar file
# A bar

我缺少的命令是git add --patch -- bar。没有它A bar最终不会打印出来。