git pull --rebase PK git pull

3 篇文章 0 订阅
订阅专栏
当遇到gitpush失败,提示本地代码非最新时,有两种解决方案:1) 使用gitfetch后gitrebaseo/master,通过变基操作使远程提交历史更整洁;2) 使用gitfetch后gitmergeo/master,但会产生额外合并节点。推荐使用gitpull--rebase以保持提交历史线性。
摘要由CSDN通过智能技术生成

在使用git的日常开发过程中,经常遇到如下情况:

1、某个时间你通过git clone/git fetch拉取了远程仓库代码到本地仓库

2、开始本地调试并开发某个功能,经过几天的奋斗,终于功能调试好了

3、当你开心地准备通过git push分享你的成果时,遇到git push失败,提示本地代码非最新,需要先更新本地代码

原来在你调试过程中,有人“偷偷地”提交了代码,导致出现类似下面所示的情况:

说明如下:

1、o/master为远程分支,master:本地跟踪分支

2、c0、c1是从远程仓库取到本地的,故o/master指向c1

3、c2代表别人提交的代码,c3是你准备git push的本地提交

4、左边实线圆圈是本地仓库,右边虚线圆圈是远程仓库

这时你是不是觉得一时无从下手呢?是否会抱怨别人不厚道?

别怕,git早就想到了,而且给出了两种不同的解决方案呢^_^

第一种:git pull --rebase

git pull --rebase可能一时不容易理解,这里先卖个关子,先看下如下操作:

git fetch

git rebase o/master

其中:

git fetch会基于c1,从远程仓库中拉取c2到本地,然后更新o/master指向c2

git rebase o/master, 这是一个变基操作,首先将master变基到o/master,这样就会在o/master分支上多了一个c3'(c3的副本),再将master指向c3', 具体效果如下图所示:

这样再git push即可,且push之后远程仓库结果如下:

 第二种:git pull

git pull 一般不建议直接使用,因为该命令往往会产生意想不到的后果,让你后悔不已,我们尽量使用下面两个命令来代替:

git fetch

git merge o/master 

其中:

git fetch效果同上

git merge o/master, 这是一个合并操作,与变基操作不同,git只会新创建一个节点c4,然后使c2和c3同时作为c4的父节点,然后使master指向c4,具体效果如下:

这时再git push即可,但是push之后远程仓库结果如下:

 你是不是觉得很惊讶呢?很可能和你预想的效果不同吧?所以尽量使用git pull --rebase,这样可以使远程仓库提交历史更清爽。 

本文参考git闯关游戏:Learn Git Branching

demo-pull-rebase-2-
02-21
"demo-pull-rebase-2-"这个标题可能是指一个关于版本控制操作的示例,特别是与Git相关的操作,如“pull”和“rebase”。在Git中,这些命令用于整合远程仓库的更新到本地工作副本。 `pull`命令是Git中常用的一个功能...
git rebase & git pull --rebase
losemyheaven的专栏
05-31 2427
git merge merge后产生的一个节点,其继承于两个分支。git rebase$ git checkout mywork $ git rebase bugfix 让当前分支并入bugfix的下游!也就是说bugfix是mywork的新base 切换到mywork,并让mywork放到bugfix中的下游去。效果如下: 注意: 当’mywork’分支更新之后,它会指向这些新创建的
git pullgit pull -- rebase
梁超杰
12-14 8040
在开始对比这两条命令之前,请大家思考三个问题: 1 工作区不干净(没有git add .)可以git pull或者git pull - -rebase代码吗? 结果是不可以,如果你没有将修改提交到暂存区,那么无论是pull还是pullrebase都是不可以拉下来代码的 接下来我们再多思考下: 2 如果工作区修改提交到暂存区但是没有commit可以调用git pullgit pul
Git->git pullgit pull --rebase的详解
最新发布
sunshine_guo的博客
06-26 2085
git pullgit pull --rebase的详解的git指令
聊下git pull --rebase
dengzai7446的博客
11-12 287
有一种场景是经常发生的。 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对...
git pull --rebase
sinat_41774721的博客
08-31 2万+
最近刚学 git rebase,觉得很牛逼的样子, 结果今天就被打脸了。 git pull --rebase1 报错: Cannot rebase: You have unstaged changes Please commit or stash them.12 第一反应是...
git 命令总结
weixin_43845059的博客
08-11 5099
不用每次pull或push 录入用户和密码 首先输入下面这条命令,然后再pull一下录入用户账号和密码,下次就会记录下来不用在再次输入 git config --global credential.helper store 不出现git bash编辑页面命令,以及出现git bash编辑页面的解决方法 禁止出现merge页面方法,git pull时可以加上--rebase参数, 使之不产生Merge点, 保证了代码的整洁, 即: git pull --rebase,但每次都加--reba.
git pull --rebase 用法
hyrylt的博客
08-25 5608
git pull --rebase
git pull --rebase的作用是什么,它与git pull有什么区别?
琅嬛福地
08-23 7万+
在push代码时,会提示使用git pull命令,也就是拉取远端代码,更新我们的仓库,那么为什么又要加个 --rebase命令呢?下面来说说这个问题,先从这两命令开始。 git pull = git fetch + git merge FETCH_HEAD git pull --rebase = git fetch + git rebase FETCH_HEAD 二者的区别是,在fetch之后的操作不同,merge与rebase的不同。 ...
git pull --rebase 详解
changgongcaomu的专栏
05-14 3414
转载:https://www.cnblogs.com/wangiqngpei557/p/6056624.html 有一种场景是经常发生的。 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的
Git-2.30.1-64-bit
11-10
1. 命令改进:新版本可能会包含对某些Git命令的增强,比如提高`git rebase`或`git merge`的用户体验。 2. 安全性修复:官方版本通常会修复已知的安全漏洞,确保用户的数据安全。 3. 兼容性提升:Git-2.30.1可能增强...
demo-pull-rebase-2
04-18
Prasad Sarode新项目介绍这个例子是为了展示一个git仓库的不同部分以及使用一个Web项目的各种命令目的如上所述,主要目的是为Git培训演示提供简单的示例。部署方式这是一个简单的Web项目,可以在任何Web服务器甚至...
GitHack-master.rar
01-06
3. **Git命令详解**:深入掌握常用的Git命令,如`git clone`、`git status`、`git add`、`git commit`、`git push`、`git pull`、`git merge`和`git rebase`,以及更高级的命令如`git blame`、`git diff`和`git ...
vscode-git-rebase:⌥VSCode扩展,可使用热键快速设置交互式git rebase的操作
05-10
Git Rebase(Visual Studio代码扩展) 使用键盘快捷键可以快速编辑交互式Git基准库的操作。 如何使用 按下与您所需的git rebase操作相对应的键。 此命令将应用于所有选定的行。 键盘快捷键: p将命令设置为“ ...
git rebase详解(图解+最简单示例,一次就懂)
热门推荐
风中一匹狼的博客
07-26 51万+
在拉公共分支最新代码的时候使用rebase,也就是git pull -r 但往公共分支上合代码的时候,使用merge
常见git命令
宇之日记
10-14 1217
常见git命令和用法
git pullgit pull --rebase
mantou_riji的博客
09-12 9656
通过上面的比较,git pullgit pull --rebase的区分实际上就是git merge与git rebase的区分。为了方便区分我们使用两个不同名分支进行讲解。然后再执行如下命令,是master分支指向最新节点。命令都是从远端拉取代码,更新我们的仓库。
git 常用命令总结
weixin_42329676的博客
09-28 1320
git add ‘path' git rm --cached 'path' 与上边add完全相反,删除add后的文件,但在工作空间保留 git rm 'path' 将add后的和工作空间的文件都删掉 git commit -m -a 'msg' git pull: 相当于 git fetch &git merge git pull -r: 相当于 git fetch & git rebase git stash save 'msg': ...
git pull --rebase origin remote 和git pull --rebase origin/remote
06-15
`git pull --rebase origin remote` 是一个命令,用于在合并远程分支(origin remote)到当前分支时使用`rebase`策略。与普通的 `git pull` 不同,`--rebase` 会将新的提交应用到当前分支的顶部,这样可以保持分支的线性历史,使得提交历史看起来更整洁,因为每个提交都是基于其父提交进行的,而不是混合在一起[^1]。 而 `git pull --rebase origin/remote` 通常不推荐,因为`remote`是一个命名引用,它指向的是远程仓库的一个特定分支(比如 `master` 或 `main`),而非直接的远程分支名称。正确的语法应该是 `git pull --rebase origin master` 或 `git pull --rebase origin main`,这表示将远程 `master` 或 `main` 分支的最新提交应用到当前分支上。
写文章

热门文章

  • Android O selinux违反Neverallow解决办法 30324
  • 浅谈高通平台NON-HLOS.bin文件生成和镜像加载过程 20407
  • system分区挂载失败案例分析 18672
  • git查看文件修改记录 8294
  • 高通平台GPIO pinctrl调试心得 8246

分类专栏

  • linux内核 12篇
  • arm64体系结构编程与实践
  • Linux驱动 2篇
  • ARM 6篇
  • gdb 1篇
  • 数据结构与算法分析-c语言描述 21篇
  • Display 5篇
  • Android debug 2篇
  • git 3篇
  • TP 1篇
  • android build
  • 算法(第四版)
  • Android 1篇
  • Android Experience 8篇
  • 形式语言与自动机 4篇
  • 机器学习 1篇

最新评论

  • 浅谈Linux PMIC驱动(一)

    渴望成长的菜鸟: 抱歉,刚换方向,最近比较忙表情包

  • 浅谈Linux PMIC驱动(一)

    qq_42099408: 怎么开了个头,没跟新了

  • linux crash分析案例之进程同步

    lazy2528: 好的,多谢,我修改试试

  • linux crash分析案例之进程同步

    渴望成长的菜鸟: 在打开i2c controller中断之前,添加了一条内存屏障指令

  • linux crash分析案例之进程同步

    lazy2528: 大佬,想问一下你修改了源码的哪几个地方?是怎么修改的?

最新文章

  • 一文带你了解linux timer子系统(一):timer
  • 我的随笔杂谈
  • 《Linux设备驱动开发详解》之udev用户空间设备管理
2024年2篇
2022年6篇
2021年2篇
2020年14篇
2018年27篇
2017年18篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家新乡玻璃钢花盆花器安宁市玻璃钢雕塑哪里有卖潮州玻璃钢人物雕塑杭州玻璃钢雕塑工厂深圳常用玻璃钢雕塑摆件四川玻璃钢雕塑厂打磨工招聘北京商场创意商业美陈服务桐乡定制玻璃钢花盆天元玻璃钢卡通雕塑苏州玻璃钢仿真水果雕塑玻璃钢雕塑供货厂家浙江玻璃钢桃子雕塑艺美家园玻璃钢雕塑工艺玻璃钢雕塑哪里买深圳玻璃钢螳螂雕塑安阳不锈钢景观玻璃钢卡通雕塑陕西大型玻璃钢雕塑哪家便宜人物玻璃钢动物雕塑销售方法忻州玻璃钢雕塑玻璃钢卡通雕塑企业天长中式玻璃钢雕塑深圳商业街玻璃钢雕塑制作商场美陈在哪寻找灵感哪有玻璃钢雕塑设计与制作商丘镜面玻璃钢仿铜雕塑芜湖环保玻璃钢雕塑防城港动漫玻璃钢卡通雕塑安丘玻璃钢雕塑教程濮阳玻璃钢人物雕塑价格报价定做加工玻璃钢雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化