当前位置: 首页 > news >正文

git pull

文章目录

  • 1.简介
  • 2.格式
  • 3.选项
  • 4.示例
    • 4.1 基础用法
    • 4.2 使用 rebase 代替 merge(推荐)
    • 4.3 只允许快进
    • 4.4 自动暂存本地修改
    • 4.5 拉取指定分支到本地指定分支
  • 5. 注意
    • 5.1 `git pull` vs `git fetch`
    • 5.2 解决 `git pull` 产生的合并冲突
    • 5.3 避免“丑的”合并提交
    • 5.4 常用别名设置
  • 6. 小结
  • 参考文献

1.简介

git pull是 Git 中最常用的命令之一,用于从远程仓库拉取最新代码并合并到当前分支

它实际上是两个命令的组合:

gitfetch +gitmerge
  • git fetch:从远程下载最新代码(不自动合并)
  • git merge:将下载的代码合并到当前分支

⚠️git pull会自动执行合并,可能会产生合并提交。如果希望避免自动合并,可以使用git pull --rebase

2.格式

gitpull[<options>][<repository>[<refspec>]]

repository 为远程仓库名称,指定从哪个远程仓库拉取,默认为 origin。

refspec 为引用规格,用于指定拉取哪些引用(分支/标签),以及如何映射到本地引用。它的格式灵活,可以是以下几种形式:

形式示例说明
<分支名>main拉取远程分支,并合并到当前分支
<分支名>:<本地分支名>main:feature拉取远程分支,并合并到指定的本地分支
+<分支名>+main强制拉取(允许非快进更新)
<标签名>v1.0.0拉取指定标签
refs/heads/*:refs/remotes/origin/*(默认)拉取所有分支到远程跟踪分支

3.选项

-r,--rebase使用 rebase 方式合并,而不是 merge(保持线性历史) --ff-only 只允许快进合并,如果不能快进则报错 --no-ff 强制创建合并提交(即使可以快进)--autostash拉取前自动暂存本地未提交的修改,拉取后自动恢复 --no-commit 拉取并合并,但不自动提交 -v,--verbose显示详细信息--all拉取所有远程分支的更新

4.示例

4.1 基础用法

# 拉取 origin 远程的 main 分支,并合并到当前分支gitpull origin main# 如果当前分支已关联远程分支,直接执行gitpull

4.2 使用 rebase 代替 merge(推荐)

# 拉取并变基,保持线性历史gitpull--rebaseorigin main

git pull --rebase=git fetch+git rebase,而不是默认的git fetch + git merge

使用--reabase选项可以使项目提交历史变成直线,没有分叉,非常整洁。

简单来说:它把你本地独有的提交“挪”到远程最新提交的后面,而不是创建一个合并提交来“汇合”,即可以消除Merge branch 'main' of <repository path>这种 commit 记录。建议使用 -r(–rebase)选项。

4.3 只允许快进

# 只能快进,否则报错(避免意外创建合并提交)gitpull --ff-only origin main

4.4 自动暂存本地修改

# 拉取前自动 stash,拉取后自动 stash popgitpull--autostashorigin main

4.5 拉取指定分支到本地指定分支

# 将远程 dev 分支拉取到本地的 feature 分支gitpull origin dev:feature

5. 注意

5.1git pullvsgit fetch

命令行为适用场景
git fetch只下载,不合并先查看远程更新,再决定是否合并
git pull下载 + 自动合并确信没有冲突,快速同步

5.2 解决git pull产生的合并冲突

# 拉取时产生冲突gitpull origin main# CONFLICT in main.go# 手动解决冲突后gitadd.gitcommit-m"Merge remote-tracking branch 'origin/main'"# 或者放弃合并gitmerge--abort

5.3 避免“丑的”合并提交

# 推荐:使用 rebase 保持线性历史gitpull--rebaseorigin main# 或者设置为默认行为gitconfig--globalpull.rebasetrue

5.4 常用别名设置

gitconfig--globalalias.pu"pull --rebase"gitconfig--globalalias.puf"pull --rebase --autostash"# 使用别名gitpu origin maingitpuf origin main

6. 小结

需求命令说明
普通拉取(默认)git pull origin main下载 + 合并(可能产生合并提交)
拉取并变基(推荐)git pull --rebase origin main保持线性历史
只允许快进git pull --ff-only origin main不能快进时报错,避免意外合并
自动暂存本地修改git pull --autostash origin main拉取前自动 stash,拉取后自动恢复
查看远程更新(不合并)git fetch origin先看再决定

一句话总结git pull=git fetch+git merge,是同步远程代码最常用的命令。推荐团队统一使用git pull --rebase保持线性历史,避免出现“丑的”合并提交。如果有本地未提交的修改,可以配合--autostash使用。


参考文献

Git - git-pull Documentation

http://www.jsqmd.com/news/981696/

相关文章:

  • 华为杯研赛F题航空机组排班优化方案(二等奖完整实现:含C++/Python代码、双数据集、建模论文)
  • 2026 年百联OK卡回收如何避免踩坑 - 购物卡回收找京尔回收
  • 云原生技术09-Rancher vs Openshift vs KubeSphere:2026年K8s管理平台怎么选
  • 2026年洛阳小吃技术培训推荐指南:轻资产创业如何快速上手 - 优质企业观察收录
  • 嵌入式硬件设计基石:i.MX RT1024电气特性深度解析与实战避坑
  • PVEL-AD:破解光伏电池长尾缺陷检测的工业级技术方案
  • 开发者必读:ChatPDF核心模块与API接口详解
  • 【MATLAB代码】任意基站数量的AOA+测距辅助定位,适用于三维环境。可自行修改基站数量,配套的设置也会同步变化
  • 从MetroPro到Zemax:搞定Zygo zxg文件格式转换的完整避坑指南
  • 量化金融的技术架构演进:从算法实现到算力协同的范式转移
  • 淄博膜结构厂家实力推荐榜|PVDF 膜材 + 钢结构防腐,质保 15年 + 施工周期缩短 50% - 资讯快报
  • 每日热门skill:12万人都在用的Agent Browser:给AI装上“手脚“后,我的工作效率翻了3倍
  • 微信快递查询小程序源码,含天行API接入指南与上线配置清单
  • K32W14x硬件设计实战:从ADC采样到I2C上拉电阻的电气规格解析
  • Kinetis K28F外设电气与时序参数实战解析:从数据手册到稳定设计
  • 【深度解析】无人值守称重系统:核心原理与工业应用 - 速递信息
  • 滋润不厚重的眼油怎么选?推荐4款质地轻盈滋养不闷肌肤 - 全网最美
  • 如何快速安装和使用MelonLoader:Unity游戏模组加载终极指南
  • 终极无损音乐下载方案:打造个人高品质音乐库的完整指南
  • ViGEmBus:Windows内核级游戏控制器模拟驱动深度解析与实战指南
  • 如何高效使用B站API:Python开发者终极实战指南
  • i.MX 7ULP通信接口时序设计:I2C、SPI、USB关键参数与调试实践
  • 信用卡AI服务产品化:从业务切片到合规交付
  • LinkSwift:八大主流网盘直链解析工具完整指南
  • LPC2114/2124数据手册深度解析:ARM7 MCU选型、功耗管理与外设开发实战
  • 高效整理Chrome书签的树形管理插件:Neat Bookmarks深度评测
  • 重庆黄金回收怎么选?6大平台实测,本地人高价出货攻略 - 薛定谔的梨花猫
  • 深入解析NXP LH79525 ARM7 SoC:从核心架构到外设驱动的嵌入式系统设计实战
  • 在 GoLand 中配置 WSL 环境跨平台开发的完整指南
  • OBS Move Transition插件未来展望:路线图与功能扩展可能性