Git合并多次提交记录

一、首先在终端输入查看git log命令查看提交的历史记录,默认只显示两条提交纪录,可按回车键显示多条纪录.

二、然后复制合并前的一次提交记录的前9位hash值2565ds565,在终端输入:git  rebase -i 2565ds565 进行合并

三、然后就会进入历史提交的编辑页面

pick acf6d24 第二次提交
pick 0353373 第三次提交

# Rebase 2169bc5..0353373 onto 2169bc5 (2 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

可以看到第2次和第3次的提交消息,并且是从old->new来排序的。我们需要把第3次提交合并到第2次上。使用squash.

也就是把第三次提交的pick 换成squash,然后保存文件即可完成第二次和第三次提交纪录的合并为一次,再次输入git log查看提交历史纪录,可见已合并为一次了.参考https://www.cnblogs.com/woshimrf/p/git-rebase.html

### 在 IntelliJ IDEA 中将多个 Git 提交合并为一个 在处理多个提交时,可以利用 `git rebase` 和交互式变基功能来实现这一目标。通过这种方式能够有效地整理历史记录,使得分支树更加整洁[^1]。 对于希望在 IntelliJ IDEA 中完成此操作的情况: #### 开始交互式 Rebase 过程 首先,在IDEA中打开终端或者使用VCS菜单下的Git子项找到Rebase命令启动交互式的rebase流程。也可以直接按下快捷键组合Alt+9进入版本控制系统工具窗口,接着选择“Log”标签页查看提交日志,并右击想要开始变基的目标提交(通常是较早的一个),从上下文菜单里选取“Rebase interactively...”。 此时会弹出一个新的编辑器选项卡展示一系列待处理的提交条目列表,默认情况下它们都被标记为pick动作。 ```bash pick abcdefg Commit message of commit A pick 1234567 Another commit message B ... ``` #### 修改提交行为 为了把几个连续的提交压缩成单个提交,需更改除了最顶部之外其他所有相关联提交前缀单词由“pick”变为“squash”。这表示这些提交将会被折叠到上面那个保留下来的提交之中去。 ```bash pick abcdefg This is the new combined commit message. squash 1234567 The changes from this will be merged into above. ... ``` 保存文件并关闭它之后,IDEA 将自动执行相应的操作,包括可能提示解决任何可能出现的冲突。一旦解决了所有的冲突并且完成了整个过程,则最终结果就是只有一个包含了之前多份改动的新提交存在了[^2]。 需要注意的是,当涉及到多人协作开发环境中的公共分支上做此类变更时要格外小心谨慎,因为强行推送到远端可能会给团队成员带来不便甚至数据丢失的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值