我真的是github和git的初学者,我的github上有一个存储库,带有一些基本代码,最近我安装了一个新的操作系统备份我的应用程序代码并添加了很多东西,当我尝试将更改推送到github,我收到了一个错误:
[rejected] master -> master (fetch first)
error: failed to push some refs to 'root@....git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我在线搜索并找到了我执行的命令:
git pull --rebase
这引起了另一个问题,我搜索并找到了另外一个我执行的命令
git pull origin branchname --allow-unrelated-histories
显示另一个错误并找到我执行的另一个答案:
git fetch origin
git reset --hard origin/master
git pull
这个删除了我在本地计算机上所做的所有更改,并将其替换为我在远程(github)存储库中的基本代码
对不起家伙我知道无知不是没有保佑但是现在我问是否有办法让我的代码回来?
答案 0 :(得分:5)
您使用HEAD
以某种方式弄乱了分支的reset --hard
。使用reflog
查找您决定重新绑定之前的最后一次提交,然后重置为该提交。
git reflog -g
# find the commit id which you want to return to using the commit message
# It might contain two commit ids for the same commit message
# if rebase was successful. Choose the older one.
git checkout -b temp_branch
git reset --hard <found_commit_id>
答案 1 :(得分:0)
对不起家伙我知道无知不是没有保佑但是现在我问是否有办法让我的代码回来?
好吧,从备份中恢复它。如果您没有,那么所有未提交的更改很可能都已消失。不一定是好的,最后的机会是立即关闭机器,将硬盘放到其他机器上,以只读方式安装磁盘并尝试使用&#34;取消删除&#34;工具类型。
git命令删除了我的东西
没有。你做到了。通过做事而不了解将会产生什么结果。很高兴没有人发布rm -rf /
作为你复制和粘贴的终极解决方案......我相信你学会了总是做一个副本以防出现问题。并盲目地执行未知命令。
答案 2 :(得分:0)