我遇到了大麻烦,因为我正在处理一个项目,所有文件都在当下消失,我希望将它们存储到远程存储库中。
这是我做的:
我有一个项目,让我们在文件夹C:/ project /
中说
然后我创建了一个远程存储库,并希望将我的文件推送到它
我使用Git Extensions for Windows工具
我在project-folder中创建了一个新的存储库。它立即说我应该播放1000多个文件。所以我上演了他们。然后我想推它们,所以我必须设置远程存储库,我做了
之后它显示分段文件位于不同的分支上,因此我切换到远程主控。然后我想与分阶段文件合并,但他们不再存在了。所以我想换回来,但另一个分支不再存在了。我以前的所有文件都不见了。我试图检查本地主人没有成功
有没有办法让我的所有文件都恢复,或者我真的删除了所有文件?也许只是重置整个存储库?
我非常感谢你的帮助。
问候 Chriz
答案 0 :(得分:1)
您可能知道,git会将您文件的每个版本存储在yourProject/.git/
文件夹下。
即使git历史记录被reset --hard
,commit --amend
,rebase
等命令更改,也可以回滚到之前的提交,这要归功于reflog
。
免责声明:当git历史记录被更改时,某些提交可能处于分离状态,这使得它们可以进行垃圾回收。在进一步说明之前,强烈建议 备份整个项目目录,否则这些提交可能会永久丢失。
引用日志或" reflogs",记录在本地存储库中更新分支和其他引用的提示时。
命令git reflog
显示历史记录中所做的修改。这使git reset
能够达到所需状态,并回滚不需要的git历史记录更改。
示例:
test.txt
hello
world
附加到test.txt
git reflog
查找之前的提交。输出
/tmp/test [ mkdir /tmp/test
/tmp/test [ cd /tmp/test
/tmp/test [ git init
/tmp/test [ echo 'hello' >> test.txt
/tmp/test [ git add test.txt
/tmp/test [ git commit -m 'First commit'
[master (root commit) 60292e4] First commit
1 file changed, 1 insertion(+)
create mode 100644 test.txt
/tmp/test [ echo 'world' >> test.txt
/tmp/test [ git commit --amend -m 'oops'
[master 76ce76f] oops
1 file changed, 1 insertion(+)
create mode 100644 test.txt
/tmp/test [ git reflog
76ce76f HEAD@{0}: commit (amend): oops
60292e4 HEAD@{1}: commit (initial): First commit
/tmp/test [ git reset --hard 60292e4
/tmp/test cat test.txt
hello