如何在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 --hard
或branch -D
失败,请尝试
git pull origin git reset --hard
我必须做一个:
git checkout -b master
因为git说它不存在,因为它已经被擦除了
git -D master