[英]Git deleted untracked files on pull
我在计算机上创建了一个git存储库并将其推送到我的服务器。 然后我进入另一台应该与存储库内容合并的计算机上的文件夹。
以下是我执行的确切步骤(我将其复制):在第一个存储库中:
git init
git remote add origin *repo adress*
git remote update
echo "abc" > a
git add a
git commit -a -m "Intial commit"
git push --set-upstream origin master
在第二个(文件被删除的那个):
git init
echo "def" > b
git add b
git remote add origin *repo adress*
git remote update
git pull origin master
我期望发生的是git将拉出这些文件然后我可以提交我的本地文件并将其推回。 但现在我的本地文件已经消失了。 git真的只是在没有警告的情况下删除本地文件(我没有使用任何强制选项或类似)?
有没有可能让他们回来,或者这是预期和预期的行为,只是删除未跟踪的文件?
只有git status
输出说:
# On branch master
nothing to commit, working directory clean
我只是用测试存储库重新定义了这些步骤,它按照描述进行:文件“a”被拉入第二个存储库,但是文件“b”没有消失(只有一个被'ls'显示)。
好吧,我发现了另一件奇怪的事情。
在git pull
的帮助下,有如下句子:
“在默认模式下,git pull是git fetch的简写,后跟git merge FETCH_HEAD”
所以,我使用$git fetch
然后$git merge FETCH_HEAD
而不是上面的git pull origin master
。 然后有什么了不起的, 文件b仍然存在。
所以,我真的不知道git pull origin master
到底做了什么。
另外,我看到了一个解释
那就是“git merge发现它没有有效的HEAD,因此会进行硬重置,这显然会覆盖已存在的所有文件。”
但我真的很怀疑这一点,因为我可以成功使用$git merge FETCH_HEAD
。
如果要查找丢失的文件,可以转到@itotheth提供的Git pull删除未提交的更改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.