我用git reset删除了我所有的家庭作业.我能解决这个问题吗



我不知道这是否是这个问题的正确格式,或者是否有任何重复,但我想我只是意外地重置了我的整个git存储库。有没有一个命令可以扭转这种局面?

我对我添加的一个文件进行了git重置,以为它会把它从添加中删除。我提交并推送了它。现在我的整个git存储库都不见了,除了我刚刚推送的代码。

git reset RadixSort.java
git add *my homework*
git commit -m "BONUS_HW"
git push origin master -f

首先,复制整个存储库(cp -R /path/to/your/repo /path/to/backup/dir(。

现在处理原始回购。假设你在master分支上,做一个git reflog master。你应该看到这样的

6ebc064 (HEAD -> master) master@{0}: reset: moving to 6ebc0647a4347d411ea99ded0f9eeb94a5f622bd
ea36a86 master@{1}: commit: Adds README
9065d84 master@{2}: commit: Renames README
1d334db master@{3}: commit: Removed duplicate READMEs
.
.
.

6ebc064就是您现在所在的位置。ea36a86是您的master分支以前所在的位置。现在,您可以使用git reset --hard ea36a86重置为该提交,它应该会将树恢复到重置之前的状态。一旦发生这种情况,请查看目录,看看是否一切正常。如果是这样的话,git push --force分支就完成了。

首先,运行

$ git log.

这将显示您所做的所有提交。

  1. 找到您想要的提交
  2. 复制相应的SHA编号
  3. git reset—硬SHA编号
  4. 推送您的代码

示例:我想将我的回购重置为下面的提交。。。

commit 8b665c15673b00ffe833572e1f325452a93f8d15
Author: Alan <alan@remote.com>
Date:   Wed Jun 10 11:46:11 2020 -0500
rename alias on commands.txt

步骤

$ git reset --hard 8b665c15673b00ffe833572e1f325452a93f8d15
$ git add *
$ git commit -m "revert to 8b665c15673b00ffe833572e1f325452a93f8d15"
$ git push -f origin YOUR WORKING BRANCH

最新更新