纵观历史,似乎你COMMITED犯下,樱桃采摘它的另一个分支,然后试图重新恢复它的两个分支。
要清理一下我首先建议你确保所有的提交(特别是包括在顶部的未提交更改),不包含你不想失去任何信息。
之后,您可以使用以下命令来丢掉其他所有东西,然后回到那一个提交。请注意,这确实会削减树,因此请确保您没有任何要保留的数据。
git reset --hard 8791cc9176
这会将您当前的分支重置为该提交,忽略其他所有内容。所以你可能想在那里重置你的本地主人。之后,您可以删除使用git branch -D Safe
您Safe
分支(注意是大写D
能够删除未合并到其他分支的分支,除此之外的情况下,使用较低的情况下d
以确保不会丢失信息)。
由于您的遥控器也更高级的状态,你可能想摆脱那些额外的提交也有。请注意,默认情况下,您不能只推送较旧的历史记录并将其替换为远程记录。相反,您必须使用git push --force origin master
(或简称-f
)强制推送它。尽管可以将它用于个人项目,但您应该知道,在与他人合作或存储库公开时,绝不应该这样做。这会将远程的历史记录更改为其他用户访问远程设备时无法自动处理的状态。所以他们可能会遇到冲突。这就是为什么你应该(a)总是确保你所推送的内容真的很好推送,并且(b)通过增加提交(例如,恢复提交,就像你已经在这里使用的那样),总是在远程撤销一些东西。
[恢复到以前的Git提交]的可能重复(http://stackoverflow.com/questions/4114095/revert-to-a-previous-git-commit) – rightfold 2014-10-19 10:38:20