任何 repo(clone 的也好 init 的也好)不论经过什么修改(除了 new file),执行 git add -A 后再执行 git status 或 git commit,均提示 up-to-date。更不用说 git push 之类的东西了 = =
更严重的是,文件改名会被识别成 new file
好像整个 git 都是只根据文件名判断更新了
另外修改完内容之后,执行 git reset --hard 会消灭所有修改,尽管那些修改并没有被识别出来。
使用的是 msysgit。重装这软件也不行。
那么这种情况应该怎么办?
1
ryd994 2015-04-22 01:34:56 +08:00 via Android
我没看见任何bug啊……
commit完难道不是uptodate么? 如果别人修改过你就pull啊 移动文件请用git mv |
2
konakona 2015-04-22 01:43:43 +08:00
我确实遇到过一个真实的情况,就是最近的项目。
大概是这样的: 我OSX\对方WIN 2点10分我进行了数个commit的Push 3点钟我看到对方在我最后的记录之后进行了Commit的提交!而且没有合并!(也就是说,对方没有进行Pull,直接将自己的Commit就Push上去了……OMG) 我不知道GIT还可以这样-..- 至少在我跟服务器层面通信的时候(我开发,测试服务器微调+部署,服务器算是另一个代码贡献人一样的角色),我改了什么,服务器也改了什么的情况下,最后一个Push的人必须先Pull另外人的代码,然后GIT自动合并后,形成合并的commit,才能将Push... |
3
SharkIng 2015-04-22 01:54:17 +08:00
我也是Git新手,不过 有Git add -a 这个命令么 ?
|
4
NemoAlex 2015-04-22 01:57:37 +08:00
写代码就别用 Windows 啦
有各种奇怪的问题也很正常,因为根本没几个人用,你就是小白鼠之一 如果你觉得花时间在这些问题上是浪费生命的话,趁早撤离 |
5
Earthman 2015-04-22 01:58:10 +08:00 via Android
显示up to date是因为把修改都提交到暂存区了,没有任何问题。你可以继续修改或者直接commit
|
8
yangqi 2015-04-22 03:02:43 +08:00
看.gitignore了么?
|
11
xxgirl2 OP |
12
xxgirl2 OP 切换了用户也没用 = =
应该是系统的什么地方出问题了。 先用linux虚拟机将就一段时间,重装好烦…… |
13
arkilis 2015-04-23 10:06:21 +08:00
你试过先
git status 再: git commit -A |
14
bombless 2015-04-23 19:32:28 +08:00
大概明白楼主的意思了……
就是说,git-status看到修改了,git-add之后git-status仍然是红色的(修改)而不是绿色的(加入暂存区)是吗。 我的建议是……换Git…… Windows下有3个版本的Git好吗,一个工作在cmd.exe下的,MSYS2维护了一支,cygwin又维护了一支。 你换的时候是不需要做任何文件操作的,因为数据都在.git那个文件夹内,不会因为你换了Git的版本而丢失什么数据。 |
15
shuirong1997 2020-06-01 17:47:21 +08:00
我也遇到这个问题了,场景是:刚合并分支,提交了代码,然后发现有个代码没写好。改完后顺手:git status,发现没监测到刚才的改动。我去文件里看,的确有改动啊。
升级过 git,其他项目就没问题。我重新 clone 当前项目也没问题。奇怪了。 尝试过:git rm -r --cached . 然后重新 add 进来,问题依旧存在。 暂时重新 clone 项目了 |
16
shuirong1997 2020-06-01 18:05:56 +08:00
@shuirong1997 #15 破案了。代码没保存,艹。
为什么我就没往是否保存这方面想? 因为我 vsc 一直配置了每 0.5s 自动保存功能,所以没手动保存的习惯。但这次合并代码涉及到.vscode/settings.json,然后里面有禁用自动保存的配置。艹。 顺便将自动保存配置放出来: ``` "files.autoSave": "afterDelay", "files.autoSaveDelay": 500, ``` |