首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏猫头虎博客专区

    Fatal Not possible to fast-forward, aborting

    情形1: 我在本地仓库的两条分支dev和 master同时开发,各自经过2个提交之后,merge报错: fatal: Not possible to fast-forward, aborting. https://gitee.com/leonxtp/xxxxx * branch master -> FETCH_HEAD fatal: Not possible to fast-forward

    60810编辑于 2024-04-07
  • 来自专栏入门到放弃之路

    git专题 | git merge的fast-forward和no-fast-forward模式有什么区别

    fast-forward模式 fast-forward 是快进模式,当你当前的分支没有任何新的提交,而另一个分支包含了一些新提交时,Git 会直接将当前分支快进到目标分支的最新提交,而不创建额外的合并提交 从上图可以看到,提示中有 fast-forward,表示直接将两个分支合并,不创建新的 commit,移动两个分支的指针指向 dev 的 commit,此时 dev 的 commit 属于两个分支。 fast-forward 适用于一个分支全包含于另一个分支的场景,分支合并后会使用被合并分支的提交信息,而 no-fast-forward 会重新生成一个新的合并提交信息。

    2.2K40编辑于 2024-09-11
  • 来自专栏小二十七

    git merge --ff/--no-ff/--ff-only 三种选项参数的区别

    | 2+++ 1 file changed, 2 insertions(+) 如果你注意上面的文字的话,你会发现 git 帮你自动执行了 Fast-forward 操作,那么什么是 Fast-forward 的位置,所以 Fast-forward 并不会发生真正的合并,只是通过移动指针造成合并的假象,这也体现 git 设计的巧妙之处。 ,这时候在 merge 的时候 git 默认无法使用 Fast-forward 模式, 我们先看看下图的模型: ? Fast-forward 模式:只会按照 Fast-forward 模式进行合并,如果不符合条件(并非当前分支的直接后代),则会拒绝合并请求并且退出 以下是关于 --ff, --no-ff, --ff-only With --ff-only, resolve the merge as a fast-forward when possible.

    2.5K20发布于 2021-05-18
  • 来自专栏Java程序猿部落

    Git分支和版本回退

    注意观察master分支中test.txt文件的内容以及我们将解决这次冲突(即我们打算保存master的修改而丢弃dev的修改): 5、深入fast-forward模式 也就是说在fast-forward 模式下: 如果可能(合并时没有冲突),那么Git就会采用fast-forward模式; 在这种模式下,删除分支时会丢掉分支信息; 合并时加上 -- no-ff参数会禁用fast-forward模式,这样就会多出一个 commit - id,也就是说在fast-forward模式下面merge不会多出一个commit-id; git merge -- no-ff dev 查看日志更好的方式 git log --graph 关于fast-forward模式和非fast-forward模式下的少一次commit-id和多一次commid-id的图解: 我们先看使用fast-forward模式下的: (即合并的时候commit-id 和另一个分支相同): 再看不使用fast-forward模式: 二、Git版本回退 Git的另外一个强大之处在于可以回退到之前的任意一个版本: 主要看下面的命令: git reset --hard

    1.6K20发布于 2019-07-03
  • 来自专栏Java程序猿部落

    Git分支和版本回退

    5、深入fast-forward模式 也就是说在fast-forward模式下: 如果可能(合并时没有冲突),那么Git就会采用fast-forward模式; 在这种模式下,删除分支时会丢掉分支信息; 合并时加上 -- no-ff参数会禁用fast-forward模式,这样就会多出一个commit - id,也就是说在fast-forward模式下面merge不会多出一个commit-id; git merge -- no-ff dev 查看日志更好的方式 git log --graph 关于fast-forward模式和非fast-forward模式下的少一次commit-id和多一次commid-id 我们先看使用fast-forward模式下的: (即合并的时候commit-id和另一个分支相同): ? 再看不使用fast-forward模式: ?

    64320发布于 2019-07-10
  • 来自专栏Git

    Git merge 各种参数以及与 rebase比较

    --ff(Fast-forwardFast-forward 是指 Master 合并 Feature 时候发现 Master 当前节点一直和 Feature 的根节点相同,没有发生改变,那么 Master 快速移动头指针到 Feature 的位置,所以 Fast-forward 并不会发生真正的合并,只是通过移动指针造成合并的假象。 --ff (Fast-forward) 模式,如果不匹配则执行 --no-ff(non-Fast-forward) 合并模式。 --no-ff 非 Fast-forward 模式:在任何情况下都会创建新的 commit 进行多方合并(即使被合并的分支为自己的直接后代)。 --ff-only Fast-forward 模式:只会按照 Fast-forward 模式进行合并,如果不符合条件(并非当前分支的直接后代),则会拒绝合并请求并且退出。

    50210编辑于 2025-05-14
  • 来自专栏yanlongli_艳龙

    git reflog

    }: commit: --story=NA 82d7bd368 HEAD@{2}: pull --recurse-submodules --progress origin feature-v6A: Fast-forward 1055c2ba6 (test) HEAD@{5}: checkout: moving from feature-v6A to feature-v6B 51478911f HEAD@{6}: pull: Fast-forward 452370ccd HEAD@{7}: pull --recurse-submodules --progress origin feature-v6A: Fast-forward 5c5563b29 HEAD@{8}: pull --recurse-submodules --progress origin feature-v6A: Fast-forward fcf67ef04 HEAD@{9}: pull --recurse-submodules --progress origin feature-v6A: Fast-forward : # 找到之前提交的commit 信息, 使用 git reset

    46410编辑于 2021-12-16
  • 来自专栏前端自习课

    【Git】616- git命令的进阶和复习(带动图效果)

    分支的合并(merge) 对于merge而言,又有两个合并策略: fast-forward no-fast-forward 假设bugfix分支是从master分支分叉出来的,以这个图作为初始分支状态 2.1 fast-forward git merge默认采用fast-forward的方式,执行git merge等同于执行git merge --ff,–ff是fast-forward的简写。 2.2 no-fast-forward --no-ff 指的是强行关闭fast-forward方式,使得每一次的合并都创建一个新的commit记录。 no-ff 后缀的方式运行 $ git merge --no-ff -m "merge with no-ff" dev 如何设置默认为no-fast-forward模式 //第一种方案:全局设置禁用fast-forward git config --global --add merge.ff false //第二种方案:某个分支单独禁用fast-forward git config branch.

    1.3K21发布于 2020-06-10
  • 来自专栏林欣哲

    图解Git合并--Merge和Rebase

    项目初始情况 Merge fast-forward 快速合并,直接把指针指向前去,无冲突要解决。 非 fast-forward 保留历史记录,解决冲突 设置 non fast-forward 即使能快速合并,也搞出一个合并的点,保留历史记录 Rebase 假设当前状况为这样 此时rebase,则把rebase

    1.6K70发布于 2018-04-24
  • 来自专栏站长的编程笔记

    git merge 命令详解

    合并场景之 Fast-forward(快速合并) 3. 合并场景之 three way merge(三路合并之正常合并) 4. 合并场景之 three way merge(三路合并之冲突合并) 5. 合并场景之 Fast-forward(快速合并) 什么是 Fast-forward 场景 ? 在 Fast-forward 场景下,合并分支会绝对成功,不会产生冲突。

    81730编辑于 2022-12-14
  • 来自专栏禅林阆苑

    git学习总结03 — 分支管理

    分支合并 merge & rebase 2.1 merge 合并 (--ff & --no-ff) merge 分支合并有 fast-forward 和 no-fast-forward 两种模式。 下图 dev 合入 master,默认触发快进模式(fast-forward),因为只需要修改指针即可实现合并;而普通模式(no-fast-forward)需要生成一个新的commit,因此即使 dev [3-01.png] # 查看分支合并图 $ git log --graph --pretty=oneline --abbrev-commit 2.2 fast-forward 模式 合并分支时 git 强制禁用 fast-forward 模式 # 添加 --no-ff 参数禁用 fast forward 改为普通模式合并保留合并历史 $ git merge --no-ff -m "merge with global --add merge.ff false # 方案2:某个分支单独禁用 fast-forward $ git config branch.

    1.7K127发布于 2020-05-30
  • 来自专栏TechBlog

    Git的branch操作详解与总结

    Git教程之分支操作 文章目录 Git教程之分支操作 分支理论 分支 (branch) 分支的运用 Merge分支 Topic分支 分支的切换 HEAD stash 分支的合并 merge fast-forward fast-forward(快进)合并 合并 bugfix分支到master分支时,如果master分支的状态没有被更改过。 如果设定了non fast-forward选项,即使在能够fast-forward合并的情况下也会生成新的提交并合并。 $ git merge issue1 Updating 1257027..b2b23c4 Fast-forward myfile.txt | 1 + 1 files changed, 1 insertions 这个是fast-forward(快进)合并。 删除分支 在branch命令指定-d选项执行,以删除分支。

    1.5K20编辑于 2022-10-31
  • 来自专栏从零开始的linux

    git分支管理

    切换分支 # git checkout alex Switched to branch 'alex' 分支合并 # git merge alex Updating 1e0b362..22031de Fast-forward master' Your branch is ahead of 'origin/master' by 4 commits. # git merge alex Updating 1e0b362..22031de Fast-forward

    65880发布于 2018-04-25
  • 来自专栏多选参数

    Git 整理 v1.0 | Git 操作整理-远端操作

    master 就被更新了,然后将远端分支拷贝到远端,这样就相当于远端被更新了,但是在执行 push 的时候得要求远端仓库的 origin/master 是本地更新之后的 origin/master 的 fast-forward 本地仓库处于 master 分支,那么执行 git push origin temp 命令,操作的两个分支其实是 origin/temp 和 temp 分支) ★在push的时候有时候会遇到 None fast-forward 问题,None fast-forward 是指:同分支情况下或者说两个相互绑定的远端分支和本地分支的情况下(通常origin/master 和 master 属于同分支),远端分支不是本地分支的父亲上的 假如 master 和 origin/master 不是 fast-forward(但是本地所在分支是 master),那么 master 和 origin/master 会进行 merge。 那么假如本地当前分支不是 master,而是 temp,并且 temp 分支跟 origin/master 也不是 fast-forward,那么 temp 分支会和 origin/master 分支进行

    63620发布于 2020-05-31
  • 来自专栏Rattenking

    GIT学习----第十一节:创建与合并分支

    合并master分支和git-study分支 $ git merge git-study Updating c8e9e50..c2799ed Fast-forward readme.txt | 3 + ---- 注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。 ---- 当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。

    51410发布于 2021-01-30
  • 来自专栏码力全开

    动图学CS: 有用的 Git 命令(上)

    而这个命令有两种类型:一种叫 fast-forward 方式,一种叫 no-fast-forward 方式。 现在不太懂没关系,我们先来对比下这两个选项。 以下例子中将 master 称作 主分支 或 当前分支 Fast-forward (--ff) 一个 fast-forward merge 可以被用于:当 主分支 相比 要被合并的分支 没有额外的提交时 懒惰的,它会首先尝试使用这个最简单的 fast-forward 选项。这种方式不会创建新的 commit,可以说它只是把我们的提交和 HEAD 指针挪了一个位置。 ? 完美!

    1.3K40发布于 2020-05-08
  • 来自专栏入门小站

    linux之git高级命令

    分支就是基于master分支的一个新的节点 > git checkout dev > git rebase master 合并提交 合并这次与上次提交 > git rebase -i HEAD~2 解决远程仓库fast-forward 当我们提交代码时,可能别人已经提交过内容到远程仓库了,这时我们提交代码时就会提醒我们fast-forward,让我们先更新下代码再提交,我们可以用rebase很快的解决这个问题。

    68400编辑于 2022-06-26
  • 来自专栏入门到放弃之路

    git专题 | 同样是分支合并, git merge和rebase有什么区别

    一种是 fast-forward 模式,使用 git merge 会自动使用这种模式。如图,快进模式就不会生成新的 commit 信息,而是将 dev 的提交信息直接挪到 master上。 这个结果就和 git merge 的 fast-forward 模式一样,不会生成自己的提交信息,而是使用 dev 分支的提交信息。 结语不论是在分支全包含还是两个分支都有变更的情况下,rebase 就和 merge 的 fast-forward 模式一样,不会产生新的 commit 信息。

    2.2K20编辑于 2024-09-12
  • 来自专栏热爱IT

    创建与合并分支 转

    现在,我们把dev分支的工作成果合并到master分支上: $ git merge dev Updating d46f35e..b17d20e Fast-forward readme.txt | 1 注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。 当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。

    53520发布于 2019-04-10
  • 来自专栏入门小站

    linux之git高级命令

    分支就是基于master分支的一个新的节点 > git checkout dev > git rebase master 合并提交 合并这次与上次提交 > git rebase -i HEAD~2 解决远程仓库fast-forward 当我们提交代码时,可能别人已经提交过内容到远程仓库了,这时我们提交代码时就会提醒我们fast-forward,让我们先更新下代码再提交,我们可以用rebase很快的解决这个问题。

    74400发布于 2021-11-10
领券