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

江湖救急! git 合并冲突,第一次遇到这种报错,还是网上搜不到答案的那种

  •  
  •   solider245 · 2020-11-09 12:04:04 +08:00 · 4352 次点击
    这是一个创建于 1505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    20201109115714_2af3e4a68a5805eb81cd77c0c1377760.png

    如图所示,一直在一个分支上写内容,然后莫名其妙的就跳出很多文件,甚至还跑到其他文件夹去,当时也没注意,就这些多出来的文件都删除了。 现在出现了这种情况,说我的提交好像没有被包含在远程分支中。

    error: 对象文件 .git/objects/9e/e311b31fe7519d4e182ed9a805f1b60d6cc031 为空
    fatal: 松散对象 9ee311b31fe7519d4e182ed9a805f1b60d6cc031 (保存在 .git/objects/9e/e311b31fe7519d4e182ed9a805f1b60d6cc031 )已损坏
    

    推送的时候报这种错,想知道这该咋整?感觉是冲突合并,涉及到代码回退,我现在本地代码是文件是没问题的,远程仓库好像是因为错误的提交被整乱了。 但是拉取下来或者强行推送都不行。

    有什么办法,可以让我把本地仓库强行推送到远程仓库?

    目前想好的一个土办法,就是把本地仓库的.git 删除咯,远程仓库也删除了重建,然后本地远程重新建立联系,只是这样的话,就等于以前的版本管理全部丢了。虽然我现在也没有多大用,但是想想,总不能每次都这么土法解决吧?

    20201109114303_068862784ab76d21963802506b361fd0.png 这张图是我发现错误的时候的提交。感觉整个人都要崩溃了……一直在一条路上走到黑的感觉。

    18 条回复    2020-11-09 23:24:20 +08:00
    darksword21
        1
    darksword21  
       2020-11-09 12:06:26 +08:00 via iPhone
    把这次 commit 的代码手动 copy 出来然后 reset ?
    no1xsyzy
        2
    no1xsyzy  
       2020-11-09 12:09:21 +08:00   ❤️ 1
    先找个其他地方 clone 一下看看内容
    gitee/master 的内容是否正常?

    git 整个文件夹复制出来随便玩……
    no1xsyzy
        3
    no1xsyzy  
       2020-11-09 12:18:19 +08:00
    先确认:
    1. 远端的 master 内容是否正常?从 26a12a84 到 master 哪开始不正常的?
    如果正常,那重新 fetch 完变基吧
    如果不正常,
    2. 本地的 gitee/master 是否正常?从 26a12a84 到 gitee/master 哪开始不正常的?
    如果正常,checkout master && rebase gitee/master && push --force 吧
    如果也不正常,那就看 master 是否正常,就当别人的 PR 你 squash && merge 了吧(
    如果 master 也不正常,那你可能回退到 26a12a84-1 来处理了……白做了
    SunriseFox
        4
    SunriseFox  
       2020-11-09 12:27:14 +08:00 via Android
    遇到这种情况 8 成是硬盘坏了…
    solider245
        5
    solider245  
    OP
       2020-11-09 12:28:53 +08:00
    @no1xsyzy 就是 master 不正常,远程仓库被污染了。然后我手贱拉取下来,还变基了。
    不知道我直接把蓝色直接回退,然后和红色合并,这样行不行?
    出问题应该就是从红色分手那里开始的。
    solider245
        6
    solider245  
    OP
       2020-11-09 12:29:47 +08:00
    @SunriseFox 我用的 wsl,看来真有可能。
    因为当时我这个文件夹的文件居然跳到到了桌面上。
    这样看的话,难道是硬盘指针出问题了?(我不懂,随便乱猜的)
    fiveelementgid
        7
    fiveelementgid  
       2020-11-09 12:31:23 +08:00 via Android
    Pro Git 书上好像有写?也许没有
    git 分为顶层和底层两套命令
    你看看底层的
    `git ref-log` 还能不能救?
    如果不行,那就 interaction 模式进入 rebase,把损坏节点删掉
    `git rebase -i HEAD~<Num>`
    no1xsyzy
        8
    no1xsyzy  
       2020-11-09 12:50:03 +08:00
    @solider245 本地没有未 commit 的东西或者 stash 了的情况下可以 checkout gitee/master 看一下……
    正常的话,看上去分手之后 master 就一个 commit,直接变基就成。
    junwind
        9
    junwind  
       2020-11-09 12:54:42 +08:00
    保证远程文件都正常,从新克隆一份远程代码就行了,出错的本地直接删掉
    likaci
        10
    likaci  
       2020-11-09 12:59:49 +08:00
    @solider245 #5
    "还变基了" 哈哈哈哈
    burnbrid
        11
    burnbrid  
       2020-11-09 13:45:51 +08:00   ❤️ 1
    你这个 git 图像界面是哪个软件的?
    christin
        12
    christin  
       2020-11-09 13:49:19 +08:00
    @burnbrid 同求
    reus
        13
    reus  
       2020-11-09 13:54:06 +08:00   ❤️ 1
    error: 对象文件 .git/objects/9e/e311b31fe7519d4e182ed9a805f1b60d6cc031 为空

    这不很清楚嘛,本地的 git repo 文件有问题!

    不是合并有问题,你本地的仓库就有问题了,只能把源码复制出来,删除本地仓库,再重新拉下来,再应用更改。

    谁叫你用 wsl 呢!
    crclz
        14
    crclz  
       2020-11-09 14:25:46 +08:00
    @burnbrid @christin 貌似是 vscode 的 git graph 插件
    Tomotoes
        15
    Tomotoes  
       2020-11-09 14:50:07 +08:00
    git reflog 了解下..
    solider245
        16
    solider245  
    OP
       2020-11-09 20:46:42 +08:00
    @reus 所以……明白了,就是土法炼钢,小煤窑挖矿,敲了重来?
    @crclz 是的,是那个插件
    @Tomotoes 好的,我去看看
    solider245
        17
    solider245  
    OP
       2020-11-09 21:33:45 +08:00
    @junwind 现在是远程仓库因为出错不正常,本地正常,如何解决?
    solider245
        18
    solider245  
    OP
       2020-11-09 23:24:20 +08:00   ❤️ 1
    @junwind
    @reus
    参照你们两位大神的问题,解决了。
    1. 重新从远程仓库拉取文件,然后手动把重复的文件和出错的文件删除了。
    出问题的原因在于使用了一个软件,会自动对文件夹进行版本管理,估计是引起的错误
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1242 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:56 · PVG 01:56 · LAX 09:56 · JFK 12:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.