首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
宝塔
V2EX  ›  git

Git 未检测到修改怎么办?

  •  
  •   xxgirl2 · 2015-04-22 00:38:37 +08:00 · 5130 次点击
    这是一个创建于 1670 天前的主题,其中的信息可能已经有所发展或是发生改变。

    任何 repo(clone 的也好 init 的也好)不论经过什么修改(除了 new file),执行 git add -A 后再执行 git status 或 git commit,均提示 up-to-date。更不用说 git push 之类的东西了 = =

    更严重的是,文件改名会被识别成 new file
    好像整个 git 都是只根据文件名判断更新了

    另外修改完内容之后,执行 git reset --hard 会消灭所有修改,尽管那些修改并没有被识别出来。

    使用的是 msysgit。重装这软件也不行。

    那么这种情况应该怎么办?

    14 回复  |  直到 2015-04-23 19:32:28 +08:00
        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
        6
    NemoAlex   2015-04-22 01:59:38 +08:00
    @SharkIng 大写-A,等于--all
    貌似现在的版本 add -A 和 add . 的作用是完全一样的了?
        7
    SharkIng   2015-04-22 02:48:43 +08:00
    @NemoAlex 好像是的,一般都用add就好了
        8
    yangqi   2015-04-22 03:02:43 +08:00
    看.gitignore了么?
        9
    clino   2015-04-22 07:07:06 +08:00 via Android
    @konakona 是不是 push -f了
        10
    sanddudu   2015-04-22 07:29:09 +08:00 via Android
    @konakona 估计是随手 -force 了,那样会覆盖
    如果不加的话肯定会提示无法 pull
        11
    xxgirl2   2015-04-22 12:07:43 +08:00
    @ryd994 问题是add之后commit之前。连commit都做不到。或者说,add这个过程都没发现修改。
    @NemoAlex 至于脱离M$,我真没有任性的资本……虽然经常用C#,然而现在问题扩散到了任何repo。
    @Earthman 不论文件内容怎么变,都是nothing to commit,除非文件列表名有变动。即使文件名变了,它也永远是 new file。
    @yangqi 里面什么都没有,完全从空 repo 起步的也这样,而且清空了用户配置文件也没用。
    @konakona 问题不一样,我这是 add 出问题了,看样子是 diff 突然只认文件名了,不知为啥。
        12
    xxgirl2   2015-04-22 12:40:36 +08:00
    切换了用户也没用 = =
    应该是系统的什么地方出问题了。
    先用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的版本而丢失什么数据。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2498 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    ♥ Do have faith in what you're doing.