git fetch
在拉取代码过程中,git fetch会首先检查本地仓库和远程仓库的差异,检查哪些不存在于本地仓库,然后将这些变动的提交拉取到本地。
但是,这里请注意,它是把远程提交拉取到本地仓库,而不是本地工作目录,它不会自行将这些新数据合并到当前工作目录中,我们需要继续执行git merge才会把这些变动合并到当前工作目录。
git pull
git pull和git fetch刚好相反,它直接获取远程的最新提交,直接拉取并合并到本地工作目录,而且在合并过程中不会经过我们的审查,如果不仔细检查,这样很容易遇到冲突。
相比之下,git fetch是一个更安全的选择,因为它从你的远程仓库拉入所有的提交,但不会对你的本地文件做任何修改。
这给了你足够时间去发现远程仓库自从你上次拉取后到现在为止发生的变化。
你可以在合并前检查哪些文件有变化,哪些文件可能导致冲突。
而git pull相当于运行git fetch,然后立即将你的改动合并到本地仓库。
这样的确少了一个步骤,但是也会带来一些风险。
|