Git 新手求助,恢复远程文件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
wwjvtwoex
V2EX    git

Git 新手求助,恢复远程文件

  •  
  •   wwjvtwoex 2018-01-09 10:08:52 +08:00 4377 次点击
    这是一个创建于 2883 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在远程 add 一个文件 X 后,没有 commit,没有和本地同步

    在本地修改了其他文件后,push 到远程
    远程文件 X 消失

    怎样能恢复远程文件 X
    25 条回复    2018-01-10 09:23:22 +08:00
    LYEHIZRF
        1
    LYEHIZRF  
       2018-01-09 10:19:47 +08:00   1
    本地 fork 一个新的分支 然后原分支 git reset --hard 到远程提交文件的版本 即可恢复
    https://github.com/geeeeeeeeek/git-recipes/wiki
    wwjvtwoex
        2
    wwjvtwoex  
    OP
       2018-01-09 10:24:08 +08:00
    谢谢,我先试试
    wwjvtwoex
        3
    wwjvtwoex  
    OP
       2018-01-09 10:25:39 +08:00
    可以通过 回滚 恢复远程文件吗 ?
    wwjvtwoex
        4
    wwjvtwoex  
    OP
       2018-01-09 10:28:39 +08:00
    不创建新分支
    barryhappy
        5
    barryhappy  
       2018-01-09 10:28:51 +08:00
    @wwjvtwoex reset 就是回滚
    exch4nge
        6
    exch4nge  
       2018-01-09 11:16:05 +08:0
    没有 commit 的文件不能用 reset 回滚获得吧?
    话说我没理解你所说的在远程 add 一个文件 X,是指你直接在远程 repo 所在的计算机上进行操作,还是你在本机操作只不过在远程分支上?一般来说第一种可能性比较小,远程 repo 不是 bare 的话,push 操作会出现警告。

    假设是第二种含义的话,可以看看 git fsck --lost-found 这个命令能不能解决你的问题。但是你如果执行过 git gc 的话,就没有救了
    xiubin
        7
    xiubin  
       2018-01-09 11:19:24 +08:00
    “在远程 add 一个文件 X 后,没有 commit,没有和本地同步 ”,想问的是你是怎么在远程 add 一个文件的。。。
    如果你没有 commit 的话你应该是找不回来了,“ git reset --hard ” 也只是回滚到某一版本(某次 commit )
    不确定是你没有表达清楚还是一楼没看清楚或者是我理解错了
    tailf
        8
    tailf  
       2018-01-09 11:27:17 +08:00
    你这里的“远程”指的是什么?据我所知 Git server 是只有 .git 文件夹的。
    LYEHIZRF
        9
    LYEHIZRF  
       2018-01-09 13:06:20 +08:00
    没 commit 确实没办法了 没看清楚 @xiubin
    LYEHIZRF
        10
    LYEHIZRF  
       2018-01-09 13:07:17 +08:00
    不过楼主是怎么做到远程只 add 不 commit 的
    lonenol
        11
    lonenol  
       2018-01-09 13:14:45 +08:00
    远程 add 是个什么操作..
    jason19659
        12
    jason19659  
       2018-01-09 13:32:13 +08:00
    虽然每台机器都可以是 git 服务器。。但是。。你是怎么在服务器上 add 文件然后本地提交还没有冲突的
    wwjvtwoex
        13
    wwjvtwoex  
    OP
       2018-01-09 13:36:02 +08:00
    @LYEHIZRF #10 ssh 登入远程仓库所在的服务器(在另一个楼层),然后 git add some_file
    wwjvtwoex
        14
    wwjvtwoex  
    OP
       2018-01-09 13:39:24 +08:00
    然后一忙,忘了 commit
    然后 本地改了一些其它文件, push
    远程的 some_file 就消失了
    Rheinmetal
        15
    Rheinmetal  
       2018-01-09 13:46:25 +08:00
    .git\objects 里面 看看修改时间 不知道有没有
    没 commit 就麻烦了
    exch4nge
        16
    exch4nge  
       2018-01-09 13:52:51 +08:00
    @wwjvtwoex #13 这操作好强大... 好像也可以在远程仓库上 git fsck --lost-found 然后找
    likuku
        17
    likuku  
       2018-01-09 14:20:58 +08:00
    @wwjvtwoex [ssh 登入远程仓库所在的服务器(在另一个楼层),然后 git add some_file]

    那其实还是个 git client 呗,只是和你自己电脑不同的是,直接在 git 库所在电脑执行
    pagxir
        18
    pagxir  
       2018-01-09 16:01:02 +08:00 via Android
    明显是楼主没理解什么是
    pagxir
        19
    pagxir  
       2018-01-09 16:01:33 +08:00 via Android
    什么是分布式
    LYEHIZRF
        20
    LYEHIZRF  
       2018-01-09 17:15:06 +08:00
    @wwjvtwoex 学习了。。还有这种操作。。
    holy_sin
        21
    holy_sin  
       2018-01-09 18:36:24 +08:00
    本地能恢复,远端就能恢复
    tinybaby365
        22
    tinybaby365  
       2018-01-09 19:27:23 +08:00
    git reflog
    fan123199
        23
    fan123199  
       2018-01-09 20:02:13 +08:00
    直接在远程操作就是个危险操作。
    flniu
        24
    flniu  
       2018-01-09 22:32:12 +08:00
    @wwjvtwoex #17 说的没错,听起来只是另一个服务器上的 git client。你再 ssh 上去,git status 一下看看。
    yacolinqi
        25
    yacolinqi  
       2018-01-10 09:23:22 +08:00
    还有你的远程添加是? 类似于直接在线上 GitHub 添加一个 readme 之类的吗? 那你这个仓库提交的时候没提示你版本问题吗? 还是你提交的时候强制提交了?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     971 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 22:40 PVG 06:40 LAX 14:40 JFK 17:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86