如何在Git中放弃本地提交?

我一直在做一些事情,并决定完全搞砸了。 所以我尝试了以下顺序:

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

我在哪一点得到的消息

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

我想放弃我的本地提交 ,而不必消灭我的本地目录并重新下载一切。 我怎么能做到这一点?

 git reset --hard origin/master 

将删除所有不是origin/master origin提交,其中origin是回购商品名,而master是分公司的名称。

顺便说一句,除了mipadi的回答(应该是这样),你应该知道这样做:

 git branch -D master git checkout master 

也不需要having to redownload everything (你的引用释义)就是你想要的。 那是因为你的本地仓库包含了一个远程仓库的副本(这个副本和你的本地目录是不一样的,它跟你签出的分支不一样)。

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

你需要运行

 git fetch 

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

我已经看到遥控器不同步的情况,需要更新。 如果reset --hardbranch -D失败,请尝试

 git pull origin git reset --hard 

我必须做一个:

 git checkout -b master 

因为git说它不存在,因为它已经被擦除了

 git -D master