https://www.cnblogs.com/runnerjack/p/9342362.html
1、简单概括
先用一张图来理一下git fetch
和git pull
的概念:
可以简单的概括为:
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull
则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决。
下面我们来详细了解一下git fetch
和git pull
的用法。
2、分支的概念
在介绍两种方法之前,我们需要先了解一下分支的概念:
分支是用来标记特定代码的提交,每一个分支通过SHA1sum值来标识,所以对分支的操作是轻量级的,你改变的仅仅是SHA1sum值。
如下图所示,当前有2个分支,A,C,E属于master分支,而A,B,D,F属于dev分支。
A----C----E(master)
\
B---D---F(dev)
- 1
- 2
- 3
它们的head指针分别指向E和F,对上述做如下操作:
git checkout master //选择or切换到master分支
git merge dev //将dev分支合并到当前分支(master)中
- 1
- 2
合并完成后:
A---C---E---G(master)
\ /
B---D---F(dev)
- 1
- 2
- 3
现在ABCDEFG属于master,G是一次合并后的结果,是将E和F的代码合并后的结果,可能会出现冲突。而ABDF依然属于dev分支。可以继续在dev的分支上进行开发:
A---C---E---G---H(master)
\ /
B---D---F---I(dev)
- 1
- 2
- 3
- 4
分支(branch)的基本操作:
git branch //查看本地所有分支
git branch -r //查看远程所有分支
git branch -a //查看本地和远程的所有分支
git branch <branchname> //新建分支
git branch -d <branchname> //删除本地分支
git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
git push origin:<branchname> //删除后推送至服务器
git branch -m <oldbranch> <newbranch> //重命名本地分支
/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/
//git中一些选项解释:
-d
--delete:删除
-D
--delete --force的快捷键
-f
--force:强制
-m
--move:移动或重命名
-M
--move --force的快捷键
-r
--remote:远程
-a
--all:所有
3、git fetch 用法
git fetch 命令:
$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
- 1
如果只想取回特定分支的更新,可以指定分支名:
$ git fetch <远程主机名> <分支名> //注意之间有空格
- 1
最常见的命令如取回origin
主机的master
分支:
$ git fetch origin master
- 1
取回更新后,会返回一个FETCH_HEAD
,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:
$ git log -p FETCH_HEAD
- 1
如图:
可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(19行红色[删除]和绿色[新增]部分)。
我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。
4、git pull 用法
前面提到,git pull
的过程可以理解为:
git fetch origin master //从远程主机的master分支拉取最新内容
git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
- 1
- 2
即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:
$ git pull <远程主机名> <远程分支名>:<本地分支名>
- 1
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
$ git pull origin next
相关推荐
其中,`git fetch` 和 `git pull` 是两个经常被使用的命令,但它们在使用上有显著的区别。这篇文章将详细解析这两个命令的区别。 首先,`git fetch` 命令的作用是获取远程仓库的最新变化,但它不会自动合并到你的...
在Git的日常操作中,`git fetch`和`git pull`是两个常用但又略有区别的命令,它们都涉及到从远程仓库获取更新,但处理这些更新的方式有所不同。 ### `git fetch` `git fetch`命令的主要作用是从远程仓库获取最新的...
`git fetch`和`git pull`用于从其他副本获取更新,`git push`则将本地更改共享出去。 了解和熟练使用Git是现代软件开发者的必备技能。通过实践和学习,你可以掌握Git的强大功能,提高团队协作效率,确保代码的安全...
### Git pull命令与fetch命令的区别 #### 一、引言 在版本控制工具Git中,开发者经常需要从远程仓库获取最新的代码更新至本地仓库。这一过程中,`git pull` 和 `git fetch` 是两个最常用的命令。虽然它们都能实现...
在推送和拉取更改的过程中,`git fetch`, `git merge` 和 `git pull` 等命令非常关键。 在线Web浏览指的是通过Web界面查看代码仓库的状态。Git本身是一个命令行工具,但在许多项目中,例如GitHub、GitLab和Bit...
远程操作,如`git fetch`、`git pull`和`git push`,则用于与远程仓库同步。 Git的核心概念包括版本快照而非差异、分支的轻量级特性、以及分布式的工作模型。每个Git仓库都有自己的完整历史记录,这使得离线工作...
通过`git fetch`和`git merge`或`git rebase`,你可以获取并整合他人对项目的贡献。 为了更好地协同工作,你需要掌握`git pull request`或`merge request`的概念,这是向项目贡献代码的一种标准流程。开发者在自己...
- `git fetch` 获取远程仓库的最新信息,`git pull` 将远程分支拉取到本地并自动合并。 通过学习以上内容,无论是新手还是有经验的开发者,都能更好地理解和掌握Git的基本操作和高级技巧,提升项目管理效率。在...
- **`git fetch`**:仅从远程仓库获取数据但不合并到本地; - **`git rebase`**:用于将一个分支上的提交应用到另一个分支上; - **`git tag`**:用于为特定提交创建标签; - **`git blame`**:查看每个文件行的最后...
远程仓库可以使用`git fetch`和`git pull`命令来获取和同步远程仓库的最新变更。 Git的高级特性还包括了重置(reset)和变基(rebase)操作,它们允许开发者改变历史提交的顺序,以更清晰、线性的历史记录。但是,...
- **远程操作**:`git push`, `git pull`, `git fetch` 3. Git核心原理: - **SHA哈希**:Git使用SHA-1哈希算法为每次提交生成唯一的标识符,确保版本的唯一性和可追溯性。 - **对象数据库**:Git将文件内容和元...
### Git应用大全:详解Git命令与流程 #### 概述 `Git`作为一款分布式版本控制系统,被广泛应用于软件开发项目之中。它不仅能够高效管理项目的历史版本,还能支持多人协作,提高团队的工作效率。本文将围绕“Git...
Git 基础知识点详解 本文将详细介绍 Git 的基础知识点,包括 Git 的基本概念、基本操作、版本控制、分支管理、远程库管理等。 Git 基本概念 Git 是一个分布式版本控制系统,允许开发者在本地对项目进行版本控制。...
- **git fetch --all**:从远程仓库获取最新的数据,但不合并到本地分支。 - **git reset --hard origin/master**:将本地分支重置为远程仓库的master分支状态。 - **git stash**:临时保存尚未提交的更改。 - **git...
如果你想要使用 `git rebase` 来更新本地分支,可以使用 `git pull --rebase` 或者先 `git fetch` 再 `git rebase origin/branch`。 总的来说,了解 `git merge` 和 `git rebase` 的差异有助于更好地管理项目,选择...
3. **手动调整**:你也可以选择手动切换到子仓库的正确分支,然后使用`git pull`或`git fetch`获取最新的提交。 ```bash cd git checkout git pull origin cd .. ``` 4. **定期更新父仓库**:为了避免...
### Git使用规范详解 在软件开发领域,Git作为版本控制系统的重要性不言而喻。它不仅提供了强大的代码管理功能,还能促进团队协作,提高开发效率。本文将深入解析Git的使用规范,涵盖工作流程、基本操作命令及其...
### Git教程从入门到精通——知识点详解 #### 一、Git简介 - **Git是什么**:Git是一款目前世界上最先进的分布式版本控制系统。它被设计用于高效处理从小型到大型项目的版本控制,尤其适合软件开发项目。 - **Git...
### Git版本控制管理(第2版)核心知识点详解 #### 一、Git简介与特性 - **起源与发展**:Git最初是由Linux内核的主要开发者Linus Torvalds于2005年创建,目的是为了更好地管理和跟踪Linux内核源代码的变化。随着...