git出现警告You are not currently on a branch.代码丢失后的找回方法

git pull出现警告:

git push出现警告:

git出现警告You are not currently on a branch.代码丢失后的找回方法_第1张图片

出现场景:

        在vscode某分支上操作git add 及 git commit后使用git push提交出现的警告

出现原因:

        观察vscode左下角分支名称是一个随机码,说明我们当前不在自己的git分支上开发

解决办法:

1.如果你在commit后仍然停留在临时分支,可以使用下方指令将当前分支的提交推送到远程仓库的指定分支:

git push origin HEAD:

 是你想要推送到的远程仓库的分支名称

2.如果你已经切换到了自己的分支,那临时分支将会消失,会出现找不到commit内容的情况

  • 先执行git reflog 来找之前的提交记录
  • $ git reflog
    f4b9b52 (HEAD -> master) HEAD@{0}: commit: Updated README.md
    c07c9d1 HEAD@{1}: commit: 临时提交的代码
    983d071 HEAD@{2}: commit: Added new feature1
    f987g2e HEAD@{3}: commit: Initial commit
  • 根据上面commit后面的提交备注来区分是否为刚才提交的代码
  • 找到后拿到HEAD前面的hash值
  • git checkout -b 新分支名称 c07c9d1(此处为hash值)

  • 执行上面的命令还原到该提交并创建一个新的分支

  • 如果需要提交代码 执行git  push origin 新分支名称 即可

你可能感兴趣的:(git)