[英]Git removed manually created files from working directory
我在系统上托管一个小型开发服务器。 从该工作目录中,我创建了一个简单的git repo。 我和另外1位用户从那里将存储库拉到本地系统。
我以为其他用户停止使用git repo。 因此,我直接在“服务器上”(这是我的系统)上直接处理工作文件。
今天早上,另一个用户随机地将其推送到了仓库中。 BAM,我的所有文件都被立即删除。 整个文件夹结构被替换为他的副本。
我以为GIT应该告诉他-哇,这些文件不匹配! 先拉! 但是什么也没做! 只是-BAM,删除我所有的工作。
所以现在我被卡住了,我所有的文件都消失了-我检查了仓库中的日志,并显示了他的推送-但是它没有提到删除文件的事情-只添加了他的文件。
我应该注意,我使用一些教程来设置裸仓库,这些教程涉及使用仓库直接控制Web服务器上的工作文件,因此仓库具有以下post.update钩子:
echo "***Updating Server Files***"
GIT_WORK_TREE=//myserver/myfolder git checkout -f
我的文件永远消失了吗?
git checkout
手册页上的内容是关于-f
(或“ force”)标志的,该标志用于放入更新后挂钩中的checkout
:
即使索引或工作树与HEAD不同,也要继续。 这用于丢弃本地更改。
如果您仍在使用“本地”存储库并推动自己更新服务器,那么无论您其他用户做了什么,都可以,因为您的本地提交和文件将保持不变。
但是,如果看起来您只是直接进行更改,而忽略了安装程序的Git部分,则您的更改可能就消失了(当然,除非进行了任何备份)。 就Git而言,它消灭的所有东西仅仅是“本地变化”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.