繁体   English   中英

git分支搞砸了

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM