今天我输入的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
[...]
这些更改已经出现在服务器上!就像我做了push
或merge
!!!
尽管我试图提交文件,但一切都和以前完全一样。
没有删除文件,也没有更改文件。 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
答案 0 :(得分:2)
由于没有人可以解释这一点,所以我假设这是一个错误。
如果有人在将来搜索此内容,请离开此处。
我已经将日志发送给开发人员,从未收到回复,但由于在我使用的那个之后有一些修改,我将假设它已修复...但我永远不会知道因为没有使用git这个项目了。
答案 1 :(得分:0)
在提交命令中指定文件时看起来像正常行为:
http://git-scm.com/docs/git-commit:
文件&gt; ...
在命令行上提供文件时,该命令将提交指定文件的内容,而不记录已暂存的更改。这些文件的内容也会在之前的演出之上进行下一次提交。