[译]git fetch
git fetch从远程仓储导入commit到你的本地仓储. 这些fetch到的commit是做为一个远程分支存储在你本地的. 这样你可以在集成这些commit到你的项目前先看看都有些什么修改.
用法
git fetch <remote> |
获取远程仓储所有的分支.
git fetch <remote> <branch> |
获取远程仓储指定的分支
讨论
当你想看看其他人都做了些什么工作的时候你可以使用fetch. 因为fetch到的内容是做为一个remote分支的形式展现出来的, 所以不会对你的本地开发有什么影响. 因此fetch是在你想merge远程的commit前, 先来查看查看这些commit的一个安全的办法. 他不回强迫你merge.
远程分支
远程分支类似于本地分支, 不同点在于他们代表是其他人的仓储的分支. 你可以checkout一个远程分支, 当你checkout一个远程分支的时候, 你处于一个detached HEAD的状态(就如checkout 一个老的commit). 你可以把他想象成是一个只读的分支. 想要查看远程分支, 只要在git branch的后面加上一个-r标记. 远程分支的前缀是remote这样就不会和本地分支混淆了. 下面的例子演示怎么查看远程分支:
git branch -r # origin/master # origin/develop # origin/some-feature |
如果你觉得远程分支的一些修改没问题你可以使用git merge把他们merge到你的本地分支. 和svn不一样, git同步远程的仓储需要两步:fetch和merge. git pull命令是这一个git fetch加git merge的更简便的写法.
例子
下面的例子演示了同步你本地仓储和远程仓储的典型工作流.
git fetch origin |
运行后会显示哪些branch被下载下来了:
a1e8fb5..45e66a4 master -> origin/master a1e8fb5..9e8ab1c develop -> origin/develop * [ new branch] some-feature -> origin/some-feature |
在下图中远程分支的commit是矩形的, 本地的是圆形的.
为了查看哪些commit被添加到了上游master, 你可以运行git log 另外加上origin/master做为过滤器
git log --oneline master..origin/master |
批准远程分支的修改并merge到我们的本地master分支可以使用如下的命令:
git checkout master git log origin/master |
然后开始merge
git merge origin/master |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?