git如何删除本地所有未提交的更改 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
nullptr404

git如何删除本地所有未提交的更改

  •  
  •   nullptr404 Apr 23, 2013 109439 views
    This topic created in 4752 days ago, the information mentioned may be changed or developed.
    想问下大家git如何删除本地所有未提交的更改,包括修改的、新增的、删除的,还有一些编译生成的临时文件。就是回到上一版本的干净状态。我查了下有两个相关的命令:
    1. git clean -df
    2. git reset --hard
    但问题是第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令只把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。

    要达到我所说的目的,是不是必须要同时运行这两条命令?能不能只用一条命令就搞定的?
    15 replies    2020-09-18 10:27:32 +08:00
    myrual
        1
    myrual  
       Apr 23, 2013
    试试
    git checkot -f
    ShadowStar
        2
    ShadowStar  
       Apr 23, 2013   4
    git checkout . && git clean -xdf
    kejinlu
        3
    kejinlu  
       Apr 23, 2013   1
    一般 git clean都是配合git reset 使用的

    如果你有的修改以及加入暂存区的话
    那么
    git reset --hard
    git clean -xdf

    如果没有加入暂存区的话 ,见楼上答案
    kejinlu
        4
    kejinlu  
       Apr 23, 2013
    @kejinlu 不是“以及” 是“已经”
    marvinlix
        5
    marvinlix  
       Apr 23, 2013   2
    git checkout -- .
    nullptr404
        6
    nullptr404  
    OP
       Apr 23, 2013
    @myrual git checkout -f 这条命令不会删除新增的文件
    nullptr404
        7
    nullptr404  
    OP
       Apr 23, 2013
    @marvinlix git checkout -- . 这条命令不会删除新增的文件
    nullptr404
        8
    nullptr404  
    OP
       Apr 23, 2013
    貌似必须得要两条命令才可以
    Jat001
        9
    Jat001  
       Apr 23, 2013
    推荐一个懒人办法,GitHub for Windows 和 GitHub for Mac 都有还原所有未 commit 的修改的功能。
    wujiangcheng
        10
    wujiangcheng  
       Apr 23, 2013
    git stash
    新加的文件还在,但所有的修改都会抹去
    bitsmix
        11
    bitsmix  
       Apr 23, 2013 via iPhone   1
    @wujiangcheng 你这完全是误入歧途。
    liubiantao
        12
    liubiantao  
       Oct 9, 2015
    @wujiangcheng
    @bitsmix

    stash 挺好用的啊, git add . && git stash && git stash drop ,至少不会影响 .gitignore 里面的不跟踪的文件
    netcatz
        13
    netcatz  
       Apr 1, 2016
    git fetch origin branch-name
    git reset --hard origin/branch-name
    netpi
        14
    netpi  
       Jan 22, 2017
    之前总结了一份 [Git 常用的撤销操作]( http://www.netpi.me/uncategorized/gitrevoke/)
    fffang
        15
    fffang  
       Sep 18, 2020
    这就是我用 source tree 的原因,一个简单的撤销竟然这么麻烦。。
    About     Help     Advertise     Blog     API     FAQ     Solana     1116 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 18:22 PVG 02:22 LAX 11:22 JFK 14:22
    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