当前位置: 首页 > article >正文

git无法提交解决方案--! [rejected] master -> master (non-fast-forward)

使用git上传自己的代码时,是否有小伙伴遇到过,以上的报错情况。

以下是我的解决方案

解决方案

git add 文件名/目录名/.
git commit -m "XXXX"
git push

输入你git的账号

输入你git账号的密码

输入

git merget --no-ff

即可解决

git merget --no-ff介绍

git merge --no-ff是 Git 中用于合并分支的命令,它强制执行普通的合并(创建合并提交),即使当前分支的提交历史是快进(fast-forward)模式。以下是详细说明:

快进合并与普通合并


快进合并(Fast-Forward Merge):如果当前分支的提交历史是线性的,没有分叉,Git 会直接将当前分支的指针移动到目标分支的最新提交,不会创建新的合并提交。这种方式简单高效,但会丢失分支的独立历史记录。
普通合并(Non-Fast-Forward Merge):即使当前分支的提交历史是线性的,git merge --no-ff也会创建一个新的合并提交,将目标分支的最新提交合并到当前分支。这种方式保留了分支的独立历史记录,便于追踪和管理。

使用场景


假设你有一个项目,包含两个分支:main 和 feature。main分支的提交历史为 A → B → C,feature分支从 B 分叉,提交历史为 B → D → E。

  1. 不使用 --no-ff:如果 main分支当前在 C 提交,合并 feature分支时,Git 会执行快进合并,将main 分支指针移动到 E 提交,合并后提交历史为 A → B → C → D → E。
  2. 使用 --no-ff:合并时,Git 会创建一个新的合并提交 F,合并后提交历史为 A → B → C → F(合并提交,包含 D 和 E)。这种方式保留了 feature分支的独立历史记录,便于后续的分支管理和代码审查。

总结


git merge --no-ff用于强制执行普通合并,保留分支的独立历史记录,适用于需要追踪分支开发过程或进行代码审查的场景。


http://www.kler.cn/a/582033.html

相关文章:

  • WLAN(无线局域网)安全
  • 《PyCharm 重命名项目文件时遇到 java.io.IOException 的终极解决方案》
  • [java]增强for循环
  • 误删/lib64/ld-linux-x86-64.so.2导致系统崩溃
  • php中JSON或数组到formData的键值对转换
  • Qt的Tcp通信
  • mysql的MGR
  • 基于生成式人工智能的网络安全主动防御技术(下)
  • C++ 编程基础:注释、字符串、输入输出、日期处理、修饰符
  • 2025最新软件测试面试八股文(含答案+文档)
  • CSS伸缩盒模型(弹性盒子)
  • 01 音视频知识学习(视频)
  • 写一个简单的SQL生成工具
  • 算法刷题--贪心算法
  • Sentinel-1 InSAR ISCE数据处理:stackSentinel.py 完全指南
  • python LLM工具包
  • API调试工具的无解困境:白名单、动态IP与平台设计问题
  • Faster R-CNN原理详解以及Pytorch实现模型训练与推理
  • Spring Boot 整合 RabbitMQ(在Spring项目中使用RabbitMQ)
  • Chrome 浏览器 134 版本新特性