如何防止Git Pull删除本地文件

时间:2019-03-24 13:05:16

标签: git git-merge git-pull merge-conflict-resolution git-status

找不到我的问题,所以我想问一下。

我和另一个人正在做这个仓库。我的本地克隆是最新的。

我的伴侣删除了文件“ example.txt”,提交并向上推送。

第二天我来,进行git状态(最新),然后进行git pull。它会从我的本地存储库中删除“ example.txt”。

问题是我需要该文件,而我的伴侣不小心删除了它。

如何防止这种情况将来发生?有办法让git pull在删除某些内容之前先警告我吗?

所以我尝试先执行git fetch,然后执行git status,但这并不能说明合并后我将要删除文件。

2 个答案:

答案 0 :(得分:0)

由于git pull基本上是git fetch,后跟git merge,因此 有趣的是看到this关于这两个(fetch x merge)的比较,然后在this strategy中了解了如何预览合并,因此可以为您提供帮助 使用git安全pull

答案 1 :(得分:0)

您可以显示本地分支机构之间的所有差异,例如, 完成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的工作原理。如果其他用户已提交 文件删除并推送到远程分支的提交此操作 无法撤消,也不能忽略它-您将不得不接受 早晚更改到您的本地主分支 将您的更改推送到遥控器。如果另一个用户删除了 意外删除文件,您可以将其还原并推送到远程服务器, 理想情况下,在单独的提交中或还原另一个用户的提交 已经推。