pull / fetch
最后更新于:2022-04-02 02:53:23
[TOC]
## 概述
### fetch
相当于是从远程获取最新版本到本地,不会自动合并。
```
// 首先从远程的 origin 的 master 主分支下载最新的版本到 origin/master 分支上
> git fetch origin master:tmp
> git diff tmp
// 最后进行合并
> git merge tmp
```
![](https://pic2.zhimg.com/v2-686ae54f78ea69b6c00cc8b159cf7369_b.webp)
### pull
相当于是从远程获取最新版本并`merge`到本地
```
git pull origin master
```
等效于
```
git fetch
git merge
```
#### pull -r
默认使用 merge 进行合并
`pull -r`使用 rebase 进行合并
## 场景
### 多远程仓库下指定拉取某一仓库
```
git pull origin
```
### 服务器合并冲突
方式一:保留服务器上做的改动
```
> git stash
> git pull
> git stash pop
```
方式二:完全覆盖本地
```
> git reset --hard
> git pull
```
';