Can I replace a Git repo with its backup?

守給你的承諾、 提交于 2020-01-17 05:19:07

问题


If I make a copy of MyDirectory which is under Git version control (with a .git subfolder) and then do a commit, does this all "behave" as it's own little repo, with version history and such?

Could I then replace the previous MyDirectory with this copy and just continue working?

Background: My Git repo got all fouled up. I'm hoping I can just replace it with a backup of the entire directory from the previous day and just move on from there.


回答1:


Yes, you can do this, and it shouldn't cause any problems.

Everything that Git needs to keep track of your version history resides in the .git folder. Thus, replacing that folder with an older version of that folder will roll back your repo to that older state. Unlike doing a Git rollback with git checkout or git revert, you will also lose all history that has been added to the repo since then.

To be safe, as @Danh suggested, you should delete the existing version of the folder before you restore the backup. (Actually, since Git objects are immutable, I'm not sure if this will be necessary. It shouldn't hurt though.) If you don't want to risk losing data from the existing version of the folder, you can also move or rename it and then restore the backup.

Depending on what you mean by "all fouled up", it may still be possible to recover without restoring from backup (especially if you haven't run any "dangerous" commands, such as anything with --force). Feel free to search around or ask here if you need help!



来源:https://stackoverflow.com/questions/40027493/can-i-replace-a-git-repo-with-its-backup

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!