git fetch的常见用例是什么?

git fetch的常见用例是什么?,git,version-control,fetch,Git,Version Control,Fetch,我正在学习Git,并帮助一些同事跟上它的速度。到目前为止,我还没有找到使用git fetch的好理由。与明智地使用git-pull甚至git-pull-rebase相比,它似乎没有太多的实用性 我与一位同事讨论了这个问题,他提出了一些相对狭窄和人为的情况,即在工作流中独立使用git fetch,但我仍然不太确信(例如,更新没有设置上游来源的分支机构,要求在提交之前更新本地回购协议而不发生冲突) 定期使用git fetch有什么好的用例吗?当它只是想知道是否有新的变化时,我就使用它 另一个用例是g

我正在学习Git,并帮助一些同事跟上它的速度。到目前为止,我还没有找到使用
git fetch
的好理由。与明智地使用
git-pull
甚至
git-pull-rebase
相比,它似乎没有太多的实用性

我与一位同事讨论了这个问题,他提出了一些相对狭窄和人为的情况,即在工作流中独立使用
git fetch
,但我仍然不太确信(例如,更新没有设置上游来源的分支机构,要求在提交之前更新本地回购协议而不发生冲突)


定期使用
git fetch
有什么好的用例吗?

当它只是想知道是否有新的变化时,我就使用它


另一个用例是
git fetch-t
,如果标签被移动了(这不是一个好主意),这是必要的。

我一直在使用它,特别是当我想更新本地回购的上游回购视图的某些方面时,而不必触摸我的工作副本:

  • 只是为了获取标签(比如当其他人添加发布标签时)
  • 获取我以前没有使用过的新远程分支(可能是开始跟踪其他人创建的功能分支)
  • 只需在不影响
    master
    的情况下更新
    origin/master
  • 至于为什么我可能会关心
    触摸我的工作副本,可能是因为:

  • 我在当前分支上有未提交的更改,我还不想提交
  • …我不想为了这个就把它们藏起来
  • 我关心当前的头或工作树状态(可能我有一个在后台运行的构建,不能让
    pull
    更新它下面的源文件)

  • git fetch不像git pull那样进行自动合并,从某种意义上说,它被认为是安全的。因为当您有未提交的更改时。就个人而言,我从不使用
    git pull
    …我更喜欢总是
    git fetch
    ,查看我要合并的内容,然后自己运行
    git merge
    。。。