7

我对 git 有一个相当令人担忧的问题。

几天前,当服务器 git 处于蓝屏状态时,我正在提交一些更改。(我们认为它实际上是由 git 引起的。)

从那以后,我无法对存储库进行任何更改,而其他人可以。当服务器崩溃时,我不能再提交对我正在提交的文件的更改,但是我可以提交对其他文件的更改。

我尝试创建一个新目录并克隆到其中。以及git stash, git pull --rebase, git stash apply.

无论如何,当我现在尝试提交服务器蓝屏时提交的文件时,服务器返回错误:

$ git push -v
Pushing to http://bjury1@server:7990/scm/project.get
Counting objects: 13, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 745 bytes | 0 bytes/s, done.
Total 7 (delta 6), reused 0 (delta 0)
POST git-receive-pack (881 bytes)
To http://bjury1@server:7990/scm/project.get
 ! [remote rejected] master -> master (missing necessary objects)
error: failed to push some refs to 'http://bjury1@server:7990/scm/project.get'

我可以提交测试更改,例如添加和删除文件。

我不太确定 git 是如何安装在这里的,我知道我们有(非常旧的版本)StashJira,并且它以某种方式内置于其中。问题是如果服务器对我来说很糟糕,我什至不知道如何修复它!

无论如何要重置或查询服务器上特定文件的状态?

任何建议都感激不尽!

编辑:

值得一提的是,我通常使用GitHub for Windows来提交更改,并且只有在出现问题时才会退回到 shell。巧合的是我们的服务器蓝屏有一个升级到这个应用程序。

编辑2:

我认为它与 GitHub for Windows 无关,我重新创建了存储库,并且可以从 git 'console' 和 GitHub 应用程序提交测试更改(添加和删除文件)。

但是,当我尝试对服务器崩溃时提交的两个文件进行更改时,我得到了上面的错误。所以问题与服务器上的这些特定文件有关。

4

1 回答 1

3

因此,当我看到我遇到问题的文件是我在机器崩溃时提交的文件时,我们尝试让其他人创建一个小更改并将这些更改提交到系统。

这对他们有用。然后我可以拉动他们的更改,然后我可以将我的更改提交到文件,让一切恢复到应有的状态。

所以答案很简单,让其他人将文件提交到存储库中,然后将它们拉回。

为什么这有效有点神秘。大概有一些用户特定的东西在崩溃后处于不良状态,所以拉一个较新的版本会重置这个“损坏”。

无论如何,它现在工作如此快乐的日子!我会留下这个问题,因为谷歌上没有关于这个问题的结果,也许其他人也有类似的问题。

于 2014-04-11T10:54:54.080 回答