Git - 结帐时间的波动?

时间:2016-04-26 08:21:47

标签: git version-control

我在Vagrant框上本地开发,并将我的更改从我的本地仓库推送到我的私有GitLab服务器。从那里,我合并到master,并在生产服务器上拉这些更改。我用来拉动生产的命令:

git fetch --all
git checkout --force {last-commit-ref}

现在,有时这需要一瞬间。它只触及更改的文件,这没问题。但有时需要30秒。你得到某种类似的计数器,如2574/3601对象或其他东西,文件不同步。

似乎没有更多文件的情况需要更长的时间。

为什么像这样的结账有时需要一瞬间,有时需要一个世纪?似乎需要30秒时,它会再次检出每个文件 - 即使它们没有改变?

修改:澄清一下,git checkout花了很长时间,而不是git fetch

1 个答案:

答案 0 :(得分:1)

-

<强> Update

经过与提问者的长时间聊天后,我发现他有一个更新所有文件的钩子(chmod)。因此,每当git更新时,他都必须重新做一遍。

切换到所需的用户解决了问题。

当您运行提取时,从远程执行下载全部更改。 这就是fetch的作用。当你结账时,它会在下载后在本地签出所需的提交。

git fetch从远程存储库下载所有内容,以便您的本地资源与遥控器完全同步,并且您拥有与遥控器相同的副本(无需在遥控器上进行更改)。

有时git需要一些时间来下载和重新打包内容。