繁体   English   中英

Git从工作目录中删除了手动创建的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM