使用Git,版本1.9.3,在Fedora,版本20上,我反复遇到这样的问题:我无法提交空的bar
文件而不让Git认为我删除了以前版本化的非空{ {1}}文件。这两个文件碰巧都存在于同一个文件夹中。我添加和提交空foo
文件的命令如下所示:
bar
您是否对我观察到的Git行为有解释?任何解决方案?
答案 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
最终不会打印出来。