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用于强制执行普通合并,保留分支的独立历史记录,适用于需要追踪分支开发过程或进行代码审查的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值