我正在学习Git,并帮助一些同事跟上它的速度。到目前为止,我还没有找到使用git fetch
的好理由。与明智地使用git pull
甚至git pull --rebase
相比,它似乎没有太多的效用。
我与一位同事讨论了这个问题,他提出了一些相对狭窄和人为的情况,其中git fetch
将在工作流中独立使用,但我仍然没有真正确信(例如更新没有一组上游源的分支,在提交之前需要更新到本地repos而没有冲突)。
定期使用git fetch
有什么好的用例吗?
当它只是想知道是否有新的变化时,我使用它。
另一个用例是git fetch -t
,这是必要的,如果标签已经移动(IMHO不是一个好主意)。
我一直使用它,特别是当我想要更新上游repo的本地repo视图的某些方面时,而不触及我的工作副本:
- 只是获取标签(当别人添加了发布标签时)
- 获取我以前没有使用的新远程分支(可能开始跟踪由其他人创建的功能分支)
- 只是更新
origin/master
而不影响master
至于为什么我可能会关心pull
触摸我的工作副本,这可能是因为:
- 我在当前分支上有未提交的更改,我还不想提交
- …并且不想仅仅为了这个 而隐藏它们。
- 我关心当前的头部或工作树状态(也许我有一个构建在后台运行,不能有
pull
更新源文件下)