我正面临一种情况,我失去了一些改变 在git中我的分支工作时的文件。不幸的是我意识到了 在做了一系列的git之后几个小时我就失去了一系列的改变 我怀疑会导致数据丢失的操作。这里是 我怀疑会导致数据丢失的步骤。
我正在分支机构:功能/记录
在这个分支中我修改了文件:
这些文件也可以在其他分支上使用。我没有上演过 也没有提交这些文件。
3.我现在尝试拉出遥控器中完成的更改 存储库运行:
%git pull origin
这导致合并,并且在几个文件中存在合并冲突 (不一定是我修改的那些)并且合并不成功。一世 决定我现在不想解决合并冲突并中止 通过运行合并:
%git reset --hard HEAD
我认为此步骤导致文件内容'log.py'和 'tests / test_log.py'将从之前的提交中拉出来 覆盖我未提交和未暂停的更改。
现在我的问题是:
答案 0 :(得分:4)
是的,git reset --hard
将不加区别地销毁所有本地更改并恢复到上次提交。但这应该是你在git pull
之前所做的提交(前提是你此时没有任何未经分级的更改);所以事情可能不会太糟糕。
git fetch
和git merge
视为单独的操作,有一个good article。
答案 1 :(得分:0)
如果在添加非暂存文件之前有人像我git reset --hard
那样犯了同样的错误,那么仍然有机会重新获得这些更改。虽然这些文件在repo中不再可用,但是一些新的IDE保留了它们自己的历史记录。就像在我的情况下,我能够从位于VCS下的 Android Studio 本地历史记录功能中检索我的未分级更改。 Directions至Revert Changes