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

【Git】详解git commit --amend用法以及使用遇到的问题

目录标题

在使用 Git 提交代码的时候,如果不想创建新的提交,而是将后续的改动合并到之前的提交中,可以使用一下命令:

实现在commit之前先将代码改动放在暂存区: git add .
使用–amend修改上次提交

git commit --amend --no-edit   # 如果不修改提交信息,合并改动到上次提交
# 或
git commit --amend -m "新的提交信息"  # 修改提交信息

由于修改历史提交,需要使用 -f 强制进行推送push:

git push -f origin <分支名> 或者 git push --force origin <分支名>

在这里插入图片描述
–amend是仅适用于未共享的提交

遇到的问题:
首先我在A分支执行了git commit --amend --no-edit提交操作,后续我又pull 拉去分支上的代码,就会出现冲突,解决完冲突后,仓库中就显示我有三次commit,这个时候可以执行先撤回最近的三次提交,然后再强制push推送,执行git reset HEAD~3 --soft ,
撤回三次,再进行提交,这样再看仓库中就只有一次commit了,包含全部改动,注意,这个时候就不要使用amend了,否则会导致他们的历史记录冲突,然后再git push --force-with-lease 强制推送;

git push --force-with-lease 和git push -f 区别
git push --force-with-lease 是一种比 git push -f 更安全的强制推送命令,它能防止意外覆盖远程分支的提交历史;

替代方案(如果想保留多个提交但在远程合并):
如果你想在本地保留多个提交记录,但在远程仓库中只显示一个提交,可以使用 git rebase -i 合并本地提交,然后再强制推送:

git rebase -i HEAD~n  # 合并最近的 n 个提交
# 在弹出的编辑器中,将需要合并的提交前的 `pick` 改为 `squash` 或 `s`
git push -f origin <分支名>

文章转载自:
http://ala.elldm.cn
http://apochromat.elldm.cn
http://caucus.elldm.cn
http://broederbond.elldm.cn
http://biomorph.elldm.cn
http://adulterated.elldm.cn
http://afterdeck.elldm.cn
http://accent.elldm.cn
http://baboosh.elldm.cn
http://briar.elldm.cn
http://barback.elldm.cn
http://capper.elldm.cn
http://blain.elldm.cn
http://amplexus.elldm.cn
http://backfire.elldm.cn
http://aquila.elldm.cn
http://changjiang.elldm.cn
http://camembert.elldm.cn
http://blastema.elldm.cn
http://bewitchery.elldm.cn
http://bajri.elldm.cn
http://antibacchius.elldm.cn
http://aesthetician.elldm.cn
http://arytenoidectomy.elldm.cn
http://calpack.elldm.cn
http://bangui.elldm.cn
http://carval.elldm.cn
http://chicquest.elldm.cn
http://cabriole.elldm.cn
http://champac.elldm.cn
http://www.dtcms.com/a/280577.html

相关文章:

  • Vue 2 和 Vue 3 中,组件的封装、二次开发和优化
  • Sersync和Rsync部署
  • Keil 5下载的时候提示“No J-Link found”
  • 《恋与深空》中龙和蛇分别是谁的代表
  • 25、企业能源管理(Energy):锚定双碳目标,从分类管控到智能优化的数字化转型之路
  • flutter弹窗:fluttertoast
  • HTTP 性能优化实战:突破高并发瓶颈的工业级方案
  • elasticsearch 下载/安装
  • 飞睿UWB超宽带定位测距技术,数字钥匙重塑智能生活,高精度厘米级定位无感解锁
  • ffmpeg音视频处理大纲
  • HR数字化转型:3大痛点解决方案与效率突破指南
  • QT 中各种坑
  • 基于Scikit-learn的机器学习建模与SHAP解释分析
  • 如何解决 Spring Boot 使用 Maven 打包后运行失败的问题(附详细排查步骤)
  • [雨云教程]端口冲突该如何解决
  • 前端报错:“Uncaught SyntaxError: missing ) after argument list
  • 【学习笔记】条件变量+互斥锁解决问题
  • 快速排序:原理、示例与 C 语言实现详解
  • 区块链的三种共识机制——PoW、PoS和DPoS原理
  • [面试] js 数组面试题
  • LangChain智能体开发实战:从零构建企业级AI助手
  • Ubuntu18.04 系统重装记录
  • Flutter 入门指南:从基础到实战
  • 22.计算指定范围内数字的幂次和
  • 【深度学习优化算法】06:动量法
  • Apriori 原理:快速筛选频繁出现的症状组合
  • B/S架构系统角色与对应协议详解
  • 《C++模板高阶机制解析:非类型参数、特化设计与分离编译实践》
  • CG--类比推理
  • IPsec:网络层的加密盾牌与HTTPS的差异解析