为什么不应该使用 git pull?

3 git pull github fetch gitlab

我是 Git 新手,git pull origin <my-branch>大部分时间都使用从远程存储库获取更改。

\n

然而,随着我获得一些经验,我发现这git fetch是更受欢迎的,但阅读几个主题,例如“git pull”和“git fetch”之间有什么区别?Git:获取并合并,don\xe2\x80\x99t pull,现在我很困惑,如果有充分的理由喜欢它,除了在获取更改之前检查更改之外,需要澄清。

\n
\n

这背后的总体思想git pullgit fetch+ git merge,当然还有一些缺点等等。

\n
\n

那么,您能否向我澄清一下:

\n

1.我应该如何从远程更新我的本地分支?

\n

2.据我所知,git pull origin <my-branch>和之间的区别git pull origin,后者从 origin 获取除 之外的所有分支<my-branch>。真的吗?我应该更喜欢哪一个?

\n

Tol*_*mos 5

git fetch是告诉本地 git 从原始版本中检索最新元数据信息的命令(但 \xe2\x80\x99 不会执行任何文件传输。它 \xe2\x80\x99 更像只是检查是否有是否可以进行任何更改)

\n

另一方面,git pull可以做到这一点,并从远程存储库中带来(复制)这些更改。

\n

要点是要记住,您的工作站上通常至少有一个项目的三个副本。

\n
    \n
  1. 一份副本是您自己的存储库,具有您自己的提交历史记录(可以这么说,\n已经保存了一份)。
  2. \n
  3. 第二个副本是您正在编辑和构建的工作副本(尚未提交到您的存储库)。
  4. \n
  5. 第三个副本是远程存储库的本地 \xe2\x80\x9ccached\xe2\x80\x9d 副本\n(可能是您克隆存储库的原始副本)。
  6. \n
\n

您可以使用 git fetch 了解自上次拉取以来在远程存储库/分支中完成的更改。这对于在执行实际拉取之前进行检查很有用,这可能会更改当前分支和工作副本中的文件(并可能丢失您的更改等)。

\n
git fetch    \ngit diff ...origin\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 我应该如何从远程更新我的本地分支?
  2. \n
\n

Git pull 是更新分支的安全方法。有时,拉动会产生冲突,这些都是边缘情况。最坏的情况是你会撤消 git pull 的更改

\n
    \n
  1. 据我所知, git pull origin "my-branch" 和 git pull origin 之间的区别,后者从 origin 获取除 . 真的吗?我应该更喜欢哪一个?
  2. \n
\n

如果您使用 git pull origin 而不指定“my-branch”,git 将使用您当前使用的分支填充该值

\n


归档时间:

查看次数:

1658 次

最近记录:

3 年,7 月 前