[英]git branch messed up
我的git储存库发生严重问题。 我以前有2个分支,昨晚我写了代码,却忘了推送到github。 今天早上,我使用了另一台机器,并尝试创建一个新分支并将其向上推送(代码存储在Dropbox中,所以我使用的是哪台机器都没有关系),然后git给我错误提示:“权限被拒绝”。 然后我意识到我没有使用我的Labtop,所以我打开了Labtop并尝试进入我刚创建的分支。 但是,看来我无法做到这一点,更糟糕的是,我在另一台计算机上提交的所有代码都消失了! 我使用git branch
查看分支列表,现在就像:
centeredForm (shang's conflicted copy 2011-08-08)
* centeredform
master
refinement
其中第一个“ centeredForm”是我在另一台计算机上创建的分支,而“ centeredform”是我随后在Labtop上创建的分支。 我的密码不见了吗? 还是有办法恢复到以前的状态?
如果已提交,则不会丢失。 历史永远存在:
git reflog
然后,您可以获取上一次提交的SHA,并撤消所有混乱:
git reset --hard <SHA>
重要提示 :首先备份所有内容。 reset --hard
将删除所有未提交的更改。
查看提交是否仍然存在,并且保管箱没有“放错地方”。 使用git rev-parse branchYouLost
。 这将查找该分支的提交。
git cat-file -t SHA_above_command_gave_you
从错误消息的外观来看,我假设这将告诉您这是一个无效的对象。 在这种情况下,Dropbox似乎失去了分支的尖端。
尝试查找丢失的某些提交的另一种方法是使用git reflog
并尝试查看其中是否包含所需的提交。 您可以使用git cat-file -p HEAD@{n}
来获取日志消息,并查看是否缺少该消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.