Git pull命令与fetch命令的区别
Git pull命令与fetch命令的区别
今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不能pull了,自己还要解决冲突。
刚下一个项目,也不懂冲突到底怎么回事,也就很难搞了。
这个时候,就不得不提Git的两个命令,git fetch和git pull
Git中从远程的分支获取最新的版本到本地有这样2个命令:
Git fetch
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master git log -p master..origin/master git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
# 将远程release分支拉到本地的releaselocal分支 git fetch origin releaser:releaselocal # 切换到tmp分支 git checkout releaselocal
这样也就解决了这个问题,之后master分支删除掉,直接从releaselocal创建master分支,这样所有的分支都跟远端的release分支同步了。
Git pull
git pull:相当于是从远程获取最新版本并merge到本地
git pull origin release:release
上述命令其实相当于git fetch 和 git merge
这个命令其实不太靠谱,如果本地没有release分支的话,会自动根据当前分支branch一个release分支,然后来执行pull操作,所以不太靠谱
所以我通常的做法是保留本地的master分支不进行任何commit,然后通过master分支来进行切换,这样在master分支上是clean的,然后通过之前的命令就不产生冲突了
之后在release分支上进行merge操作,安全很多。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
详解git无法pull仓库refusing to merge unrelated histories
详解git无法pull仓库refusing to merge unrelated histories 本文讲的是把Git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决 fatal: refusing to merge unrelated histories 我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传. 先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull 因为他们是两个
-
Git fetch和pull的详解及区别
git fetch和pull的区别 Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge Git fetch origin master git log -p master..origin/master git merge origin/master 以上命令的含义: 首先从远程的origin的master主分支下载最新的版本到origin/master分支上:然后比较本地的master分支和origin/mas
-
github pull最新代码实现方法
github现在已经经常用了,但是经常遇到下面的问题 比如:从一个项目A中fork了一个分支B,并且在分支B有了改动.过了几天后,项目A中的代码应该会有很多人提交修改了,现在想将最新的代码pull到分支B.请问如何做呢?在github界面上没有看到响应的按钮 解决步骤: 假设你fork的项目原始地址是urlRep, 你自己的是urlYou $ git remote add upstream urlRep # 你本地的origin应该跟自己的remote,并且当前本地branch是maste
-
Git pull命令与fetch命令的区别
Git pull命令与fetch命令的区别 今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不能pull了,自己还要解决冲突. 刚下一个项目,也不懂冲突到底怎么回事,也就很难搞了. 这个时候,就不得不提Git的两个命令,git fetch和git pull Git中从远程的分支获取最新的版本到本地有这样2个命令: Git fetch git fet
-
git fetch与git pull的区别详解
git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提. FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本. commit-id:在每次本地工作完成后,都会做一个git commit 操作来保存当前工作到本地的repo, 此时会产生一个commit-id,这是一个能唯一标识一个版本的序列号. 在使用git push后,这个序列号还会同步到远程仓库. 有了以上的概念再来
-
Git pull(拉取),push(上传)相关命令介绍
前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git做版本控制.话不多说,具体命令整理如下: git拉取远程代码 git clone https://xxx.git git拉取远程指定分支下代码(-b 分支名称) git clone -b v2.8.1 https://xxx.git 初始化一个本地仓库,在同级目录下会出现一个隐藏的.git文件
-
Git pull(拉取)及push(上传)相关命令介绍
前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git做版本控制.话不多说,具体命令整理如下: git拉取远程代码 git clone https://xxx.git git拉取远程指定分支下代码(-b 分支名称) git clone -b v2.8.1 https://xxx.git 初始化一个本地仓库,在同级目录下会出现一个隐藏的.git文件 g
-
Git中需要熟记的命令小结
提交流程相关 查看文件改动以及新增的文件 git status 添加新增文件 git add your_file_path // 添加全部文件 git add * // 添加某类型文件 git add dir/*.js 简单的提交文件 git commit -m "Commit message" 提交你所有的修改文件以及添加的文件 git commit -am 'your message' 撤销修改某个文件 git checkout -- <filename> 放弃本地所有
-
git分支(branch)操作相关命令及分支命令的使用
分支(branch)操作相关命令 查看本地分支:$ git branch 查看远程分支:$ git branch -r 创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支 切换分支:$ git checkout [name] 创建新分支并立即切换到新分支:$ git checkout -b [name] 删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的.如果想强
-
Linux命令搜索命令whereis与which的区别
Linux命令搜索命令whereis与which的区别 一 whereis 1.语法 whereis 命令名 搜索命令所在的路径以及帮助文档所在的位置 选项: -b:只查找可执行文件 -m:只查找帮助文件 2.实战 [root@localhost ~]# whereis ls ls:/usr/bin/ls /usr/share/man/man1/ls.1.gz/usr/share/man/man1p/ls.1p.gz [root@localhost ~]# whoami root [root@l
-
面试必问Linux 命令su和sudo的区别解析
目录 1. 准备工作 2. su 命令介绍及主要用法 2.1 - 参数 2.2 切换到指定用户 2.3 -c 参数 3. sudo 命令介绍及主要用法 3.1 主要用法 3.2 sudo 工作原理 3.3 思考 4. 二者的差异对比 之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下. 1. 准备工作 因为本篇博客中涉及到用户切换,所以需要提前准备好几个测试用户,方便后续切换. Linux中新建用户的命令是 us
-
git push & git pull 推送/拉取分支的具体使用
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支. $ git push <远程主机名> <本地分支名>:<远程分支名> 注意: 命令中的本地分支是指将要被推送到远端的分支,而远程分支是指推送的目标分支,即将本地分支合并到远程分支. 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建. $ git pus
-
window设置任务计划定时执行 git 更新(git pull)并隐藏运行cmd
windows计划任务 开始 > 管理工具 > 任务计划程序 首先创建一个bat文件.命名为:XXXX.bat, 内容如下: @echo off D: cd \share\doc git pull \share\doc:是git项目目录.创建完,手动双击执行一下该bat文件,是否正常.正常的情况是:双击就会进行更新将该bat文件放在自己相中的位置,比如D盘根目录.添加windows任务计划 schtasks /create /sc minute /mo 5 /tn "自动更新-git
随机推荐
- ORACLE常见错误代码的分析与解决(三)
- jquery表单对象属性过滤选择器实例分析
- jsp 开发之struts2中s:select标签的使用
- C#中的FileUpload 选择后的预览效果具体实现
- js实现右键自定义菜单
- JavaScript 异步调用框架 (Part 3 - 代码实现)
- Android手机悬浮窗口小案例
- 什么是JavaScript中的结果值?
- JS原型对象的创建方法详解
- 微软终于对网页三剑客下手了
- PowerShell脚本中控制Windows DNS服务的方法
- 简单总结Java的反射机制的运用
- python用Pygal如何生成漂亮的SVG图像详解
- 经验谈如何选择适用网吧的路由器
- 浅析Java中print、printf、println的区别
- php通过排列组合实现1到9数字相加都等于20的方法
- PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
- Android笔记之:onConfigurationChanged详解
- c#批量整理xml格式示例
- CentOS环境下安装Redis3.0及phpredis扩展测试示例