git - Git 和 Github - 撤消
问题描述
我想从我的 git staging 中删除一个文件以提交。所以我做了“git reset --hard”。在尝试提交和推送文件的某个时候,我删除了文件夹中的文件。所以文件夹现在是外壳。我尝试了“git reflog”和“git reset”到以前的日志,但我无法取回文件。但是,我有一些静态文件。我如何删除文件夹中的文件?我可以恢复文件吗?
$ 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 staging 中删除一个文件以提交。所以我做了“git reset --hard”
什么?不!一个简单git reset -- aFile
的就够了。
Agit 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
推荐阅读
- ios - 将导航堆栈的值存储在字典 iOS 中
- hive - 如何在 Hive CLI 上从 Hive 中的数据库中获取数据
- azure - Azure 长期审核日志
- unit-testing - 为什么我的 Karma 单元测试会为没有任何表单的组件中的缺失值访问器抛出错误?
- java - 如何使用 Java 中的方法从类动态创建实例
- java - Java 在数组中查找重复的字符串并添加相应的 int 值
- c# - 为样式应用的ValueConverter设置动态ValueConverter-Parameter
- python - 安装成功后找不到pip包
- javascript - 使用 javascript 和 jquery 的一个功能的多次点击事件。此代码工作正常,但需要一些简单的代码
- mysql - 如何选择所有包含一定数量外键的表?