我一直在做一些事情,并决定它完全被搞砸了……在做了一些事情之后。所以我尝试了以下顺序:
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
master
顺便说一句,除了 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
我所做的是我尝试重新设置为 HEAD。这将清除所有本地提交:
git reset --hard HEAD^
你需要跑
git fetch
要获得所有更改,然后您将不会收到“您的分支在前面”的消息。
我见过遥控器不同步并需要更新的情况。如果 areset --hard
或 abranch -D
失败,请尝试
git pull origin
git reset --hard
我不得不做一个:
git checkout -b master
正如 git 所说,它不存在,因为它已被
git -D master