首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  
  •   nullptr404 · 2013-04-23 14:58:21 +08:00 · 98642 次点击
    这是一个创建于 2394 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想问下大家git如何删除本地所有未提交的更改,包括修改的、新增的、删除的,还有一些编译生成的临时文件。就是回到上一版本的干净状态。我查了下有两个相关的命令:
    1. git clean -df
    2. git reset --hard
    但问题是第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令只把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。

    要达到我所说的目的,是不是必须要同时运行这两条命令?能不能只用一条命令就搞定的?
    14 回复  |  直到 2017-01-22 12:57:15 +08:00
        1
    myrual   2013-04-23 15:02:05 +08:00
    试试
    git checkout -f
        2
    ShadowStar   2013-04-23 15:02:06 +08:00   ♥ 4
    git checkout . && git clean -xdf
        3
    kejinlu   2013-04-23 15:06:09 +08:00   ♥ 1
    一般 git clean都是配合git reset 使用的

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

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

    stash 挺好用的啊, git add . && git stash && git stash drop ,至少不会影响 .gitignore 里面的不跟踪的文件
        13
    netcatz   2016-04-01 16:45:00 +08:00
    git fetch origin branch-name
    git reset --hard origin/branch-name
        14
    netpi   2017-01-22 12:57:15 +08:00
    之前总结了一份 [Git 常用的撤销操作]( http://www.netpi.me/uncategorized/gitrevoke/)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1142 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    ♥ Do have faith in what you're doing.