如果我们最终必须合并,为什么 git 获取?
Why git fetch if we will have to merge eventually?
如果我们知道我们最终必须合并远程仓库中的任何更改,为什么还要费心做 git fetch
?
我了解 git fetch
从远程仓库下载新数据,与 git pull
不同,它不与我们工作区中的数据集成。我们可以在 return 检查 data/commits 之前 运行 git merge
.
的差异
通过简单的谷歌搜索,我只能看到人们说 git fetch
+ git merge
比 git pull
更安全。我有点明白,你不想做 git pull
并发现你合并了一些破坏工作区数据的东西。问题是如果发生这种情况,我可以选择回滚。
除了检查本地和远程存储库之间的差异之外,使用 git fetch
是否有更大的目的或理由?
我知道这对大多数人来说可能听起来像是一个简单甚至愚蠢的问题,但我不明白为什么它会如此困扰我。我只是希望有人能说服我更多地去做 git fetch
。另外,我写这篇文章不是为了咆哮或抱怨,我真的只是想学习 git.
的所有安全实践
我一直使用 git 获取,以便我可以 运行 一个 git log --graph
并在进行合并之前查看更改。另外,有时你想做一个变基,而不是合并。您可以通过向 git pull
添加标志来进行简单的变基,但同样,我经常想先查看图表以确保变基正确。
Why do we bother doing git fetch if we know that we will have to merge whatever changes in the remote repo eventually?
糟糕的前提。您不必合并所有内容,您可能不是必须合并任何内容的人。如果您只是安装,您可以获取并可能结帐,不一定首先或什至永远不会到现有的工作树。如果你携带补丁,你将获取和变基。如果你正在寻找漏洞,你会获取并平分。就这样。
另外:不要相信你读到的一切。我有点接受针对 git pull
的警告,不是因为它有任何内在的东西,它是我曾经使用过的所有东西……算上它在我经常使用的大多数回购协议中,而是作为警告给那些还不知道自己在做什么的人。了解它在做什么,了解它的选项和配置旋钮可以为您做什么。不要以为你在学会开车之前就可以在精神上自动驾驶,Git只是可笑简单但工作的复杂性使它很难看出来。
除了检查差异和做merge/rebase,我还
- cherry-pick 提交
- 检查 blob 对象的大小
- 创建补丁
- 创建 git 捆绑包或 zip/tar 包
- 签出一个提交
- 从提交消息中检索错误票证等数据
- 计数增删
- 搜索字符串的提交并找出谁对字符串有贡献
等等
基本上我从存储库数据库中读取数据。阅读最新数据,我需要先git fetch
我无法告诉你有多少队友让我感到困惑,因为他们对 main
的拉取请求包括 20 多个提交,而不是来自他们的功能分支的预期 3 个提交(例如)。
他们需要获取,然后 rebase 他们的功能分支在更新的远程跟踪分支 origin/main
之上,然后强制推送他们的分支。
这更新了正在进行的拉取请求,它现在仅显示来自其分支的 3 次提交。
如果我们知道我们最终必须合并远程仓库中的任何更改,为什么还要费心做 git fetch
?
我了解 git fetch
从远程仓库下载新数据,与 git pull
不同,它不与我们工作区中的数据集成。我们可以在 return 检查 data/commits 之前 运行 git merge
.
通过简单的谷歌搜索,我只能看到人们说 git fetch
+ git merge
比 git pull
更安全。我有点明白,你不想做 git pull
并发现你合并了一些破坏工作区数据的东西。问题是如果发生这种情况,我可以选择回滚。
除了检查本地和远程存储库之间的差异之外,使用 git fetch
是否有更大的目的或理由?
我知道这对大多数人来说可能听起来像是一个简单甚至愚蠢的问题,但我不明白为什么它会如此困扰我。我只是希望有人能说服我更多地去做 git fetch
。另外,我写这篇文章不是为了咆哮或抱怨,我真的只是想学习 git.
我一直使用 git 获取,以便我可以 运行 一个 git log --graph
并在进行合并之前查看更改。另外,有时你想做一个变基,而不是合并。您可以通过向 git pull
添加标志来进行简单的变基,但同样,我经常想先查看图表以确保变基正确。
Why do we bother doing git fetch if we know that we will have to merge whatever changes in the remote repo eventually?
糟糕的前提。您不必合并所有内容,您可能不是必须合并任何内容的人。如果您只是安装,您可以获取并可能结帐,不一定首先或什至永远不会到现有的工作树。如果你携带补丁,你将获取和变基。如果你正在寻找漏洞,你会获取并平分。就这样。
另外:不要相信你读到的一切。我有点接受针对 git pull
的警告,不是因为它有任何内在的东西,它是我曾经使用过的所有东西……算上它在我经常使用的大多数回购协议中,而是作为警告给那些还不知道自己在做什么的人。了解它在做什么,了解它的选项和配置旋钮可以为您做什么。不要以为你在学会开车之前就可以在精神上自动驾驶,Git只是可笑简单但工作的复杂性使它很难看出来。
除了检查差异和做merge/rebase,我还
- cherry-pick 提交
- 检查 blob 对象的大小
- 创建补丁
- 创建 git 捆绑包或 zip/tar 包
- 签出一个提交
- 从提交消息中检索错误票证等数据
- 计数增删
- 搜索字符串的提交并找出谁对字符串有贡献
等等
基本上我从存储库数据库中读取数据。阅读最新数据,我需要先git fetch
我无法告诉你有多少队友让我感到困惑,因为他们对 main
的拉取请求包括 20 多个提交,而不是来自他们的功能分支的预期 3 个提交(例如)。
他们需要获取,然后 rebase 他们的功能分支在更新的远程跟踪分支 origin/main
之上,然后强制推送他们的分支。
这更新了正在进行的拉取请求,它现在仅显示来自其分支的 3 次提交。