代码之家  ›  专栏  ›  技术社区  ›  Daniel C. Sobral

如何丢弃Git中的本地提交?

  •  215
  • Daniel C. Sobral  · 技术社区  · 14 年前

    我一直在做一些事情,在做了一些事情之后,我觉得这件事完全搞砸了。所以我尝试了以下顺序:

    git reset --hard
    git rebase origin
    git fetch
    git pull
    git checkout
    

    Your branch is ahead of 'origin/master' by 2 commits.
    

    我想放弃我的本地提交 ,而不必删除本地目录并重新下载所有内容。我怎样才能做到?

    6 回复  |  直到 10 年前
        1
  •  575
  •   LondonRob    9 年前
    git reset --hard origin/master
    

    origin/master origin 是回购名称和 master

        2
  •  32
  •   techkuz    6 年前

    另外,除了mipadi的回答(顺便说一句),你应该知道:

    git branch -D master
    git checkout master
    

    也做你想做的事 having to redownload everything

    清除一个分支是完全安全的,重建该分支非常快,不涉及网络流量。记住,git主要是一个本地回购的设计。即使是远程分支在本地也有一个副本。只有一点元数据告诉git特定的本地副本实际上是一个远程分支。在git中,所有文件都在硬盘上。

    如果您除了master没有其他分支,您应该:

    git checkout -b 'temp'
    git branch -D master
    git checkout master
    git branch -D temp
    
        3
  •  15
  •   giang nguyen    7 年前

    我要做的是努力让自己清醒过来。这将清除所有本地提交:

    git reset --hard HEAD^
    
        4
  •  3
  •   hippietrail    7 年前

    git fetch
    

    若要获取所有更改,则您将不会收到“您的分支在前面”的消息。

        5
  •  1
  •   Jim Clouse    11 年前

    reset --hard 或者 branch -D

    git pull origin
    git reset --hard 
    
        6
  •  0
  •   ramp    10 年前

    我不得不做一件事:

    git checkout -b master
    

    正如git所说,它不存在,因为它已经被

    git -D master