git 从远程拉取文件时会截断文件吗?

Does git truncate files when pulling from a remote?

我有一个 Web 服务器 运行 Apache 和 PHP。我想知道 Git 是否会在拉取过程中中断对文件的访问。

git pull其实是两个命令的快捷方式:

这将从远程检索文件。你有机会打断它。

git fetch

这会将更改合并到您的本地分支。 以毫秒完成

git merge

所以,关于截断文件的能力:

  1. 正如 Thomas Kilian 所说,git 进程在其单独的线程中运行。所以不容易被打断。
  2. 如果您中断 git pull(关闭控制台,或者您的互联网连接断开,或其他),您实际上中断了 git fetch。由于未完成提取,因此不会将截断的文件合并到您的分支。重复 git fetchgit pull,让它完成,您就获得了文件的有效副本。
  3. 如果偶然 Git 设法合并了一个无效状态(例如,在合并过程中断电),您总是有以前的提交。做 git reset --hard <last-valid-commit-sha1>.