首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git - 设置一个没有rebase的commit的父级

在Git中,可以使用git commit --no-rebase命令来设置一个没有rebase的commit的父级。

Git是一个分布式版本控制系统,它允许开发者在项目中进行版本控制和协作。在Git中,每个提交(commit)都有一个父级(parent),表示该提交是基于哪个提交进行的更改。

默认情况下,Git会尝试使用rebase操作来整理提交历史,将新的提交放在已有提交的顶部,以保持提交历史的整洁和线性。然而,有时候我们可能希望设置一个没有rebase的commit的父级,即将新的提交放在已有提交的后面。

要设置一个没有rebase的commit的父级,可以按照以下步骤操作:

  1. 首先,在进行提交之前,使用git branch命令查看当前所在的分支,确保在正确的分支上进行操作。
  2. 然后,使用git commit --no-rebase命令进行提交,例如:git commit --no-rebase -m "Commit message"

这样,Git会创建一个新的提交,并将其设置为没有rebase的commit的父级。

设置一个没有rebase的commit的父级可以在以下情况下使用:

  • 当需要保留提交历史的线性结构时,可以使用这个选项。
  • 当需要在提交历史中明确显示每个提交的顺序和关系时,可以使用这个选项。

腾讯云相关产品和产品介绍链接地址:

请注意,以上提到的腾讯云产品仅作为示例,不代表对其他云计算品牌商的推荐或评价。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Learning Git by Animations

git branch -f master HEAD~3命令含义是(强制)移动 master 指向 HEAD 第3提交。...git merge merge产生一个特殊提交记录,它包含两个唯一提交,有两个提交提交记录本质上指 “我想把这两个提交本身及它们提交集合都包含进来”。...git reset git reset 把分支记录回退到上一个提交记录来实现撤销改动。你可以认为这是在”重写历史”。git reset 往回移动分支,原来指向提交记录好像重来没有提交过一样。...你不可以 “checkout” 到 tag 指定 commit上,tag 存在就像是一个commit tree 上表示特定讯息一个锚。...有两种方法设置: (1)第一种就是通过远端分支检出一个分支,执行: git checkout -b foo o/master 虽然分支名不叫master,但是在执行git push时候foo分支上提交记录会同步到远端仓库

41120

十分钟了解git那些“不常用”命令

1.1 merge 合并 merge 合并两个分支时会产生一个特殊提交记录,它有两个节点。简单说就是:“我要把这两个节点本身及它们所有的祖先都包含进来。”...(如果master和bugFix之间没有其他commitrebase后commitid不会更新。如果master已经有了自己新commit,此时rebase后commitid就会更新。)...如果你不删的话会发现全部文本行都组成了一个多行commit msg  如果commit再往前已经没有了 就不能再squash,否则会报错( error:cannot'squash'without a...当你要改写commit history还没有被提交到远仓库时候,也就是说,还没有与他人共享之前,commit history是你私人所有的,那么想怎么改写都可以。...延伸用法 移动分支可以直接使用 -f 选项让分支指向另一个提交。例如下面的命令会将 master 分支强制指向 HEAD 第 3 提交。

40510

看了这篇文章,你应该可以应付工作中90%git命令

相对引用 HEAD^ 上1; HEAD^^ 上2; HEAD^2 当HEAD有2个节点时候,HEAD^回到第一个节点,也就是HEAD正上方节点,HEAD^2回到第2个节点; HEAD...~4 上面4,不带数字默认回到上1; 可链式操作: 1 $ git checkout HEAD~^2~2 撤销操作 1.reset 1 $ git reset --hard HEAD^(上一个版本号...revert撤销是生成一个commit,该commit消除掉revert指定版本所有更改,并生成一个版本,也就是说生成版本会和指定版本一个版本完全一致。...2.rebase 123 $ git rebase master #将当前分支所作任何修改都当作是从主分支最新commit开始计算合并$ git rebase -i master #可视化选择当前分支能合并版本追加到...$ git fetch origin :bar #没有指定远程源,相当于直接在本地创建一个bar分支 这个并不会更新关联origin/foo指向,如果bar分支不存在,则会创建一个bar分支

37510

十分钟了解 git 那些“不常用”命令

我们之前整合分支用最多就是 merge 了,那 merge 和 rebase有什么区别呢? 1. merge merge 合并两个分支时会产生一个特殊提交记录,它有两个节点。...但是,此时 master 还没有和 bugFix 同步(颜色不同),我们还需要执行如下代码: git checkout master; git rebase bugFix ?...如果你不删的话会发现全部文本行都组成了一个多行 commit msg 如果 commit 再往前已经没有了 就不能再 squash,否则会报错( error: cannot 'squash' without...4. rebase 需要谨慎使用 当你要改写 commit history 还没有被提交到远仓库时候,也就是说,还没有与他人共享之前,commit history 是你私人所有的,那么想怎么改写都可以...延伸用法: 移动分支:可以直接使用 -f 选项让分支指向另一个提交。例如下面的命令会将 master 分支强制指向 HEAD 第 3 提交。

54320

Git 基础操作

bugFix^ 强制修改分支位置 # 将 main 分支强制指向 HEAD 第 3 提交 git branch -f main HEAD~3 撤销变更 reset 通过把分支记录回退几个提交记录来实现撤销改动...git rebase main git checkout another git rebase side git rebase bugFix git branch -f main HEAD 两个节点...git checkout main^2 # 切换到合并提交第二个提交 git checkout HEAD~^2~2 # 切换到当前提交第二个提交倒数第二个提交 git checkout...,特别是需要将分支合并进入 master 分支时;当发现自己修改某个功能时,频繁进行了 git commit 提交时,发现其实过多提交信息没有必要时,可以尝试 git rebase # git reset...区别是: 从 commit 层面讲: git reset 可以将一个分支末端指向之前一个 commit。下次 git 执行垃圾回收时候,会把这个 commit 之后 commit 都扔掉。

26810

十分钟了解 git 那些 “不常用” 命令

1. merge ★merge 合并两个分支时会产生一个特殊提交记录,它有两个节点。简单说就是:“我要把这两个节点本身及它们所有的祖先都包含进来。”...但是,此时master还没有和bugFix 同步(颜色不同),我们还需要执行如下代码: git checkout master; git rebase bugFix ?...如果你不删的话会发现全部文本行都组成了一个多行commit msg 如果commit再往前已经没有了 就不能再squash,否则会报错( error: cannot 'squash' without...当你要改写commit history还没有被提交到远仓库时候,也就是说,还没有与他人共享之前,commit history是你私人所有的,那么想怎么改写都可以。...延伸用法:移动分支可以直接使用 -f 选项让分支指向另一个提交。例如下面的命令会将 master 分支强制指向 HEAD 第 3 提交。

44440

7.6 Git 工具 - 重写历史

Git 没有一个改变历史工具,但是可以使用变基工具来变基一系列提交,基于它们原来 HEAD 而不是将其移动到另一个上面。...例如,如果想要修改最近三次提交信息,或者那组提交中任意一个提交信息,将想要修改最近一次提交提交作为参数传递给 git rebase -i命令,即 HEAD~2^ 或 HEAD~3。...记住 ~3 可能比较容易,因为你正尝试修改最后三次提交;但是注意实际上指定了以前四次提交,即想要修改提交提交: $ git rebase -i HEAD~3 再次记住这是一个变基命令 - 在 HEAD...核武器选项:filter-branch 有另一个历史改写选项,如果想要通过脚本方式改写大量提交的话可以使用它 - 例如,全局修改你邮箱地址或从每一个提交中移除一个文件。...全局修改邮箱地址 另一个常见情形是在你开始工作时忘记运行 git config 来设置名字与邮箱地址,或者你想要开源一个项目并且修改所有你工作邮箱地址为你个人邮箱地址。

64360

图解Git

命令详解 Diff 有许多种方法查看两次提交之间变动。下面是一些示例。 ? Commit 提交时,git用暂存区域文件创建一个提交,并把此时节点设为节点。然后把当前分支指向新提交节点。...如果想更改一次提交,使用git commit --amend。git会使用与当前提交相同节点进行一次新提交,旧提交会被取消。 ? 另一个例子是分离HEAD提交,后文讲。...Rebase 衍合是合并命令另一种选择。合并把两个分支合并进行一次提交,提交历史不是线性。衍合在当前分支上重演另一个分支历史,提交历史是线性。...没有图片体现着下,细节看这里:git-rebase(1) 技术说明 文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob形式分别存储在数据库中(.git/objects)...但是过一段时间就失效,最终被回收,与git commit --amend或者git rebase很像。 Copyright © 2010, Mark Lodato.

72780

公司新人培训 Boot Camp 分享 -- CI (git)

分布式: 分布式版本控制系统根本没有“中央服务器”,每个人电脑上都是一个完整版本库....一个 commit 一个commit进行, 当前冲突需要解决完之后, 再 git rebase --continue, 直到所有commits合并完毕, 使得 commit history 美观, 缺点是可能要多次进行冲突解决...(git rebase重新整理commits历史) 例如上面例子中, 已经提交了10个commits, 现在需要删除其中第6个, 然后合并其他所有的commits为一个commit....pop 就可以恢复当时状态. git submodule: 项目太大, 子项目相对独立, 项目含有一个子项目的指针而已....比如设置 commit 之前 跑一下 pre-commit hook, 该 hook 可以跑一下比如 静态coding style check, 如果不通过就不让commit. commit.template

61630

git 那些事儿 —— 基于 Learn Git Branching

bugFix 在 git 中合并两个分支时会产生一个特殊提交记录,它有两个节点。...=> git checkout HEAD~3 选择提交 操作符 ^ 与 ~ 符一样,后面也可以跟一个数字。...但不是用来指定向上返回几代,而是指定合并提交记录某个提交。一个合并提交有两个提交,所以遇到这样节点时该选择哪条路径就不是很清晰了。...git 默认选择合并提交“第一个提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。...这里可以举一个实际例子,大一点公司都有自建代码库系统,可以设置代码库是否允许开发者直接提交代码,一般设置为否,需要提交到一个特殊分支,经过同行评审后再合入到正式分支: git push origin

1.8K20

关于 Git 重写提交历史一些笔记

--------王小波 ---- 公司要求在代码提交时候,需要提交信息中包含任务单号,我在一次需求代码提交中,一个分支只有最后几次提交信息中包含了任务单号,在最初提交中没有包含任务单号,所以一直...Git没有一个改变历史工具,但是可以使用变基工具来变基一系列提交,基于它们原来 HEAD 而不是将其移动到另一个上面。...例如,如果想要修改 最近三次提交信息,或者那组提交中任意一个提交信息,将想要修改最近一次提交提交 作为参数传递给 git rebase -i 命令,即 HEAD~2^ 或 HEAD~3。...当保存并退出编辑器时,Git带你到列表中第一个提交提交,应用第一个提交(f7f3f6d),应用第二个提交( 310154e),然后让你进入命令行。...added blame 35cfb2b updated README formatting f3cc40e changed my name a bit 核武器选项:filter-branch 从每一个提交中移除一个文件

31520

git学习笔记

码云有个很好学习git东西:https://oschina.gitee.io/learn-git-branching/ 笔记如下: 提交代码:commit git commit 创建新分支 git...合并分支 在 Git 中合并两个分支时会产生一个特殊提交记录,它有两个节点。...翻译成自然语言相当于:“我要把这两个节点本身及它们所有的祖先都包含进来。” 合并前 git merge bugfix 首先,master 现在指向了一个拥有两个节点提交记录。...Rebase 实际上就是取出一系列提交记录,“复制”它们,然后在另外一个地方逐个放下去。 Rebase 优势就是可以创造更线性提交历史,这听上去有些难以理解。...例如: git branch -f master HEAD~3 上面的命令会将 master 分支强制指向 HEAD 第 3 提交。

25620

俩小时掌握git常用用法

merge git checkout -b bugFix git commit git checkout master git commit git checkout bugFix git rebase...image.png 交互式rebase git rebase -i HEAD~4 杂项 只取一个提交记录 适用于bufFix中有多个无效提交记录(比如打印debug日志),我们只需要取一个提交记录到主分支上即可...多分支全都rebase到master上 多个节点时 使用git checkout HEAD^1中^符号可以指定第几个节点。...参数 # 切换到本地master分支,获取所有的commit,再到远程仓库origin中找到master分支,将远程仓库中没有的提交记录都添加上去 git push origin master #...将本地某个分支推送到远程中一个分支 git push origin : # 注意这里destination也可以是一个新建分支 git fetch参数

65230

21张图,将 Git 工作原理彻底说清楚…

命令详解 Diff 有许多种方法查看两次提交之间变动。下面是一些示例。 Commit 提交时,git 用暂存区域文件创建一个提交,并把此时节点设为节点。然后把当前分支指向新提交节点。...如果想更改一次提交,使用 git commit —amend。git 会使用与当前提交相同节点进行一次新提交,旧提交会被取消。 另一个例子是分离 HEAD 提交,后文讲。...Rebase 衍合是合并命令另一种选择。合并把两个分支合并进行一次提交,提交历史不是线性。衍合在当前分支上重演另一个分支历史,提交历史是线性。...没有图片体现着下,细节看这里:git-rebase(1) 技术说明 文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob形式分别存储在数据库中 (.git/objects...但是过一段时间就失效,最终被回收,与git commit --amend 或者 git rebase 很像。

18021

玩不转 GitHub (一)

,发现 Git没有跟踪这个变化,你是不是很崩溃,这里建议提前进行设置 pull 代码使用 merge 最新 Git 中增加 pull.rebase 配置,让你来决定默认 pull 时是使用 rebase...还是 merge,当你不进行手动设置时候会使用 merge 进行合并,但是会每次都提示进行配置,这里建议你设置成 false git config --global pull.rebase false...Git 没有一个改变历史工具,但是可以使用变基工具来变基一系列提交,基于它们原来 HEAD 而不是将其移动到另一个上面。...例如,如果想要修改最近四次提交信息,或者那组提交中任意一个提交信息, 将想要修改最近一次提交提交作为参数传递给 git rebase -i 命令,即 HEAD~3^ 或 HEAD~4。...记住 ~4 可能比较容易,因为你正尝试修改最后四次提交;但是注意实际上指定了以前五次提交,即想要修改提交提交: $ git rebase -i HEAD~4 再次记住这是一个变基命令——在 HEAD

42540

git rebase

rebase 这个命令正式工作中基本上没有用过,只是学习时曾经写过 Demo,但具体指令含义不是太理解,总觉得没有 merge 来得有掌控感,而且过去使用代码出过问题,所以一直知道但没去用它。...比如平时在 develop 分支上开发,因为想做什么试验临时开了个 feature-test 分支,如果没有切到 develop 再继续做事,那么 merge 也就是一个快进,没什么影响,如果 develop...git rebase [目标分支] 假设有两个分支:dev 和 test,并且当前处于 test 分支,执行 git rebase dev 就是找到这两者共同提交 A,把 test 在这之后操作(...C、D)在 dev 上重做,这样两个 test 分支分叉开来链路就没了,rebase 后产生两个新提交 C' 和 D',C' 提交是 B,test 指向 D'。...Applying: test commit 在 dev 分支执行这个指令,rebase 之后自动切换到了 test 分支,并且有了一个新提交 E'。

69230
领券