git提交没有文件名,没有-a

时间:2011-05-30 19:38:42

标签: git

今天我输入的git commit没有我想到的文件名,发生了奇怪的事情。

通常只会告诉我“使用文件名或-a,dummie”,但这一次显示:

$ git commit -m "some change"
[master 1d75411] some change
 37 files changed, 1566 insertions(+), 1189 deletions(-)
 create mode 100644 fileA
 create mode 100644 fileb
 [...]
 delete mode 100644 fileC
 delete mode 100644 fileD
 [...]

这些更改已经出现在服务器上!就像我做了pushmerge !!!

尽管我试图提交文件,但一切都和以前完全一样。

没有删除文件,也没有更改文件。 Unix权限和以前一样!

发生什么事了?!


编辑: 现在,在每两次提交之后,会发生这种情况:

$ git status
 * nothing changed *
$ git diff
 * nothing *
$ edit somefile
$ git commit -m "some change" somefile
[master f875c5b] some change
 21 files changed, 4 insertions(+), 1563 deletions(-)
 delete mode 100644 fileA
 delete mode 100644 fileB
 delete mode 100644 fileC
 [...] (somefile does not even appear on the console output, only if i get log later)

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   fileA
#   new file:   fileB
#   new file:   fileC
[...]

$ git commit -m "re-add files? why?"
$ git push

$ git status
 * nothing changed *

$ git diff
 * nothing *

$ edit somefile

$ git commit -m "some change" somefile
[master f875c5b] some change
 21 files changed, 4 insertions(+), 1563 deletions(-)
 delete mode 100644 fileA
 delete mode 100644 fileB
 delete mode 100644 fileC
 [...]

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   fileA
#   new file:   fileB
#   new file:   fileC
[...]

就是这样。我会认为我对git不够聪明并且在Subversion中主持这个项目。无论如何,在这个阶段不需要太多的历史,所以它现在可能会丢失。

在我有时间完全阅读git书之后,我可以再试一次。

感谢您尝试提供帮助,但这太奇怪而且没有效果。

另外,出于对某人的好奇,到目前为止我的工作流程已经完成(两个月这样做,直到今天一切都很好)

$ git fetch
$ git merge origin/master master
$ edit file
$ git add somenewfile
$ git commit -m 'something changed' file somenewfile
$ git push

2 个答案:

答案 0 :(得分:2)

由于没有人可以解释这一点,所以我假设这是一个错误。

如果有人在将来搜索此内容,请离开此处。

我已经将日志发送给开发人员,从未收到回复,但由于在我使用的那个之后有一些修改,我将假设它已修复...但我永远不会知道因为没有使用git这个项目了。

答案 1 :(得分:0)

在提交命令中指定文件时看起来像正常行为:

http://git-scm.com/docs/git-commit

文件&gt; ...

在命令行上提供文件时,该命令将提交指定文件的内容,而不记录已暂存的更改。这些文件的内容也会在之前的演出之上进行下一次提交。