Git and Github- undo



我想从git staging中删除一个文件进行提交。所以我做了";git reset-hard";。在尝试提交和推送文件的某个时刻,我删除了文件夹中的文件。所以文件夹现在是外壳。我试过";git reflog";以及";"数字复位";到以前的日志,但我无法取回这些文件。然而,我有一些静态文件。我是如何删除文件夹中的文件的?我可以恢复文件吗?

$ git reflog
189dab7 (HEAD -> master, origin/master) HEAD@{0}: reset: moving to HEAD
189dab7 (HEAD -> master, origin/master) HEAD@{1}: checkout: moving from 189dab70a4f924bb575b55162012516e2867730a to master
189dab7 (HEAD -> master, origin/master) HEAD@{2}: checkout: moving from master to remotes/origin/master
189dab7 (HEAD -> master, origin/master) HEAD@{3}: commit: large commit
8f4498f HEAD@{4}: reset: moving to 8f4498f
8f4498f HEAD@{5}: reset: moving to HEAD
8f4498f HEAD@{6}: reset: moving to HEAD
8f4498f HEAD@{7}: reset: moving to HEAD
8f4498f HEAD@{8}: commit: authors and quote ranks
8524f92 HEAD@{9}: commit: 'navigation'
7317450 HEAD@{10}: commit: Angular
373db2e HEAD@{11}: commit (initial): PreMean

我想从git暂存中删除一个文件以提交。所以我做了";git reset-hard";

什么?不一个简单的git reset -- aFile就足够了
git reset --hard将通过HEAD的内容覆盖工作树(磁盘(中的所有文件(并重置索引(。

git reflog仅在您提交了这些文件时适用,但在这里,我怀疑您没有提交。

因此,如图所示,请尝试git fsck --lost-found选项:

for b in $(git fsck --lost-found | grep blob | awk '{print $3}'); do  
git cat-file -p $b > ../$b ;
done

通过向前滚动而不是向后滚动来进行另一次git重置以更改历史。所以你必须做git reset –-hard <commit id for authors and quote ranks>

git reset –-hard 8f4498f

最新更新