首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候应该使用git pull --rebase?

什么时候应该使用git pull --rebase?

提问于 2017-12-20 02:30:28
回答 2关注 0查看 1.6K

知道有些人git pull --rebase默认使用,有些人坚持不使用。理解合并和重组之间的区别,但是正在试图把它放在上下文中git pull。难道只是不想看到大量的合并提交信息,还是有其他问题?

回答 2

死者是小智

发布于 2017-12-20 03:09:29

想提供一个不同的角度来看“git pull --rebase”究竟意味着什么,因为它似乎有时会迷失方向。

如果你曾经使用过颠覆(或CVS),你可能习惯了“svn update”的行为。如果你有更改提交,并提交失败,因为已经做了上游改变,你“svn更新”。Subversion通过合并上游的变更,从而导致冲突。

颠覆者刚刚做了什么,实质上是“拉回”。重新制定你的本地变化是相对于较新版本的行为是“重新定位”的一部分。如果在失败的提交尝试之前完成了“svn diff”,之后将得到的diff与“svn diff”的输出进行比较,那么两次差异之间的区别就是重新构建操作所做的。

在这种情况下,git和subversion之间的主要区别是,在subversion中,“你的”更改只存在于工作副本中未提交的更改中,而在git中则有本地实际的提交。换句话说,在git中,你分叉了历史; 你的历史和上游历史已经分歧,但你有一个共同的祖先。

在我看来,在你的本地分支只是简单地反映上游分支并对其进行持续开发的正常情况下,正确的做法总是“--rebase”,因为这就是你在语义上实际做的事情。你和其他人正在窃取分支的预期线性历史。事实上,在你试图推动之前,其他人碰巧推迟了这一事实是无关紧要的,而且对于每一次这样的时间事故都会导致历史合并,这似乎是反效果的。

如果你真的觉得无论出于什么原因都需要某个分支,那么在我看来这是一个不同的问题。但是,除非你有一个具体而积极的愿望,以合并的形式来表达你的改变,否则在我看来,默认行为应该是“git pull --rebase”。

请考虑其他需要观察和了解项目历史的人。你是否希望历史上遍布着数以百计的合并历史,还是只想要有意合并的有意识的发展努力的少数合并?

帅的惊动我国

发布于 2017-12-20 03:09:16

在Git中,你可能知道,鼓励你分支和合并。你所在的本地分支,以及远程分支,实际上是不同的分支,并且git pull正在合并它们。这是合理的,因为你不太经常推动,通常积累一些变化,才构成一个完整的功能。

然而,有时 - 无论出于什么原因 - 你认为如果这两个遥远的和本地的分支是一个分支,情况会更好。像在SVN中一样。这是在哪里git pull --rebase发挥作用。你不再合并 - 你实际上在远程分支上进行提交。这就是它的实际情况。

无论危险与否,您是否将本地与远程分支视为一个不可分割的东西。有时这是合理的(当你的变化很小,或者如果你刚刚开始一个强大的开发,当小的提交带来重要的变化时)。有时不是(当你通常创建另一个分支,但你太懒了)。但这是一个不同的问题

和开发者交流更多问题细节吧,去 写回答
相关文章
简单对比git pull和git pull --rebase的使用
使用下面的关系区别这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git
洗尽了浮华
2018/01/22
1.7K0
简单对比git pull和git pull --rebase的使用
聊下git pull --rebase
《聊下git pull --rebase》是一种场景,在这种场景下,大家都基于develop拉出分支进行并行开发,分支可能是多到数十个。然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周。在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交。这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码。甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的部分代码进行测试回归,这就很麻烦了。那么我们来看一下你在pull时候需要习惯性的加上—rebase参数,这样可以避免很多问题。--rebase的本意是想让事情的发展看起来很连续和优美,而不是多出很多无用的merge commit 。
王清培
2018/01/08
6480
聊下git pull --rebase
git pull 代码的时候默认使用 rebase 而不是 merge
git pull 实际会有两个操作,一个是 git fetch,另外一个是 git merge。一般 merge 的情况下会产生一个新的提交名字为 Merge branch ****,如下图所示:
我与梦想有个约会
2023/10/21
1.1K0
git pull 代码的时候默认使用 rebase 而不是 merge
git pull 代码的时候默认使用 rebase 而不是 merge
git pull 实际会有两个操作,一个是 git fetch,另外一个是 git merge。一般 merge 的情况下会产生一个新的提交名字为 Merge branch ****,如下图所示:
我与梦想有个约会
2023/10/21
1.2K0
git pull 代码的时候默认使用 rebase 而不是 merge
git rebase使用
作用: 是重置提效记录。 本质是,当合并其它分支的提交记录后,重整提交记录。 不论是自己开发,还是参加开源项目,有很多时间,需要重整提交记录。美化一下,这时候就很有用了。
潇洒
2023/10/20
3240
git rebase使用
Git 应该用 fetch 还是 pull
相信绝大部分的人都会直接 pull,偶尔 fetch。但是这 2 个到底有什么不同呢?
HoneyMoose
2021/08/14
4460
Git 应该用 fetch 还是 pull
Git rebase使用详解
git rebase能够将分叉的分支重新合并,之前写过一篇文章介绍它的原理,下面主要介绍它的两个使用场景:
全栈程序员站长
2022/07/19
6630
Git rebase使用详解
git rebase的使用
git rebase简单的作用就是合并,同git merge很类似,但是原理又跟git merge不同,下面我们来了解一下git rebase的作用: 1、合并多次commit 在开发过程中,我们要完成一个需求,首先我们会从远程仓库拉取一个相对干净的代码,比如测试环境分支develop,然后基于develop分支再创建一个自己本地的分支,代码如下: 创建自己的分支后,就在当前分支中完成自己的需求,完成后需要并自己测试无误后将自己的代码合并到develop分支再push到远程分支,代码如下: 当然上面讲述的事
企鹅号小编
2018/01/10
8280
git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解决办法
本文介绍了 git pull --rebase 命令的作用以及使用该命令时可能遇到的问题,并提供了解决方法。
张拭心 shixinzhang
2018/01/05
4.5K0
git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解决办法
git rebase
但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了
JavaEdge
2018/08/10
4270
git rebase
git rebase
rebase 这个命令正式工作中基本上没有用过,只是学习时曾经写过 Demo,但具体指令的含义不是太理解,总觉得没有 merge 来得有掌控感,而且过去使用代码出过问题,所以一直知道但没去用它。
三流之路
2018/09/11
8070
git rebase
Git -- Rebase
git rebase: 这个命令可以把一个分支上commit的变化放到另一个分支上重新上演一遍. 简单的Rebase例子. 首先准备好一个git项目. 做一个feature分支, 然后做几个commi
solenovex
2018/03/29
8230
Git -- Rebase
图解 | git rebase使用笔记
git rebase用于把一个分支的修改合并到当前分支。 假设你现在基于远程分支”origin”,创建一个叫”mywork”的分支。
全栈程序员站长
2022/07/19
5400
图解 | git rebase使用笔记
Git rebase 使用场景分析
此时git rebase就派上用场了,git rebase的使用场景之一就是合并多次提交记录。如下图连续修改a.js的内容两次,产生了两个commit记录,此时为了提交历史的简洁性可以考虑将其合并成一次提交。
yaoyao_xhguo
2023/03/10
4990
Git rebase 使用场景分析
Git示例教程 - 如何使用git rebase命令
现在我们想要将topic分支上的ABC提交重新rebase到最新的master分支上,可以执行如下命令:
KINGYT
2019/11/07
1.1K0
图解 | git rebase使用笔记
git rebase用于把一个分支的修改合并到当前分支。 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。
码农编程进阶笔记
2021/07/20
1.1K0
图解 | git rebase使用笔记
Git之Rebase
在上一节我们看到了,多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。 每次合并再push后,分支变成了这样: $ git log --graph --pretty=oneline --abbrev-commit * d1be385 (HEAD -> master, origin/master) init hello * e5e69f1 Merge branch 'dev' |\ | * 57c53ab (or
兮动人
2021/06/11
4780
Git - Git Merge VS Git Rebase
Git merge和Git rebase是两种不同的版本控制工作流程,它们用于将一个分支的更改合并到另一个分支。它们有不同的工作原理和应用场景,下面是它们的主要区别:
小小工匠
2023/09/14
4010
Git - Git Merge VS Git Rebase
什么时候应该使用volatile
volatile 修饰符告诉编译程序不要对该变量所参与的操作进行某些优化。在两种特殊的情况下需要使用volatile 修饰符:第一种情况涉及到内存映射硬件(memory-mapped hardware,如图形适配器,这类设备对计算机来说就好象是内存的一部分一样),第二种情况涉及到共享内存(shared memory,即被两个以上同时运行的程序所使用的内存)。
杨源鑫
2019/07/22
2.2K0
git merge vs git rebase
https://www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview
jiewuyou
2022/09/29
4610

相似问题

“git merge”和“git rebase”有什么区别?

21.2K

工蜂项目git仓库500怎么办,代码没办法pull和pull?

1407

什么时候应该在C ++中使用类和结构?

2295

kubernetes pull image ErrimagePull ?

0394

如何实现Android Pull-to-Refresh?

2371
相关问答用户
某公司 | 程序员擅长1个领域
腾讯云TDP | 先锋会员擅长2个领域
新浪微博 | 高级总监擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档