找不到我的问题所以我想我会问。
我自己和另一个人正在研究这个回购。我的本地克隆是最新的。
我的伙伴删除了一个文件'example.txt',提交并推送它。
我第二天来,做一个git状态(最新),然后git pull。它从我的本地仓库中删除'example.txt'。
问题是我需要该文件而我的合作伙伴不小心将其删除了。
我如何防止将来发生这种情况?在删除某些内容之前,有没有办法让git pull先警告我?
所以我尝试先做一个git fetch,然后是git status,但它没有显示我要删除一个文件,如果我合并。
由于git pull
基本上是git fetch
,然后是git merge
,有趣的是看到this比较这两个(fetch
x merge
),然后看看this strategy关于如何预览合并,因此,有些东西可以帮助你安全地进行pull
ing用git。
您可以在执行master
之后显示您的本地分支(例如master
分支和远程git fetch
分支)之间的所有差异:
$ git diff ...origin/master
diff --git a/example.txt b/example.txt
deleted file mode 100644
index e69de29..0000000
此时你仍然在你的master
上有example.txt但是当你做git merge
时它会被删除。出于习惯,我经常在最终将获取的更改合并到我的本地分支之前执行此操作。
但是,根据您描述问题的方式判断,您似乎并不真正理解git是如何工作的。如果另一个用户已提交文件删除并将提交推送到远程分支,则此操作无法撤消,您无法忽略它 - 在将更改推送到远程之前,您必须迟早接受对本地主分支的更改。如果另一个用户无意中删除了该文件,您可以将其恢复并将其推送到远程,理想情况是在单独的提交中,或者还原另一个用户推送的提交。