git修改及合并commit提交

在开发过程中,保持代码记录清晰会更方便追踪,对代码审核人员也更有便宜。

修改commit提交
比如我们刚提交了一个commit,但之后要追加代码到已经推送到远程仓库的提交中,这时我们可以选择修改commit提交,使新的更改也推送到远程仓库,但只显示一次commit记录


使用 git commit --amend 命令:

首先,在你想要追加代码的提交之后,进行你的代码变更和暂存,可以使用 git add 命令暂存代码变更。
然后,使用 git commit --amend 命令来修改最近一次的提交:
git commit --amend

此时,Git 会打开一个文本编辑器,让你编辑提交信息。保持提交信息不变即可。
保存并关闭编辑器后,你的代码变更会追加到最近一次的提交中。
最后,使用 git push -f origin <branch_name> 命令来强制推送修改到远程仓库:
git push -f origin <branch_name>
(git push -f origin local_branch:remote_branch)

请注意,-f 参数是用于强制推送的,必须小心使用,避免破坏其他人的工作。

在这里插入图片描述ctrl+o,enter,ctrl+x

合并commit提交
有时我们已经多次commit,需要将多次commit合并,只保留一次提交历史。

git log 查看当前commit记录
使用 git rebase -i HEAD~n
n代表你要合并的commit次数,假设是3,那么输入以后会列出3次提交的commit提交记录,最新的提交记录在最上面,倒序排下来的。在commitId前会有pick字母,把需要采用的commit保留pick,使用squash,把commit合掉,也可简写为s。然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。

如果你想放弃这次压缩的话,执行以下命令:
git rebase --abort

在这里插入图片描述然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。修改以后要记得敲下面的命令:

git add .
git rebase --continue
不过此时远程的信息仍未改变,下面操作会把修改同步到远程git仓库 
最后,使用 git push -f origin <branch_name> 命令来强制推送修改到远程仓库:
git push -f origin <branch_name>
当你在使用 IntelliJ IDEA 和 Git 进行版本控制时,有时会遇到需要修改提交但尚未推送 (push) 的 commit 提交信息的情况。以下是几种常见的情形及解决方案: ### 修改最近一次未推送的 Commit 消息 如果只是想更改最新的一次本地commit消息,并且该commit还未推送到远程仓库,可以这样做: 1. 打开“Version Control”工具窗口(通常位于IDE底部),选择 "Log" 标签页查看历史记录; 2. 右键点击你想编辑的那个最新的Commit项; 3. 从菜单中选择 ` Amend Commit... `,这将打开一个包含当前变更集详情以及原始提交注释文本框的新窗口; 4. 编辑你要更新的信息,在弹出的消息输入框里改为你想要的内容; 5. 点击 “Commit” 或者直接按 Ctrl+Enter 完成操作。 这种方法不会改变实际文件内容,仅会影响最后一次提交描述文字。 ### 使用命令行修正任意单个未推送Commits 对于更早之前的一个或多个已经做过的提交,也可以通过交互式rebase的方式来进行批量调整,包括修改提交说明、合并某些commits等复杂任务。 假设你现在处在主分支`main`,并且希望修改距离HEAD n步远(n>=0表示正向偏移量)之前的某个特定点处的历史纪录,则步骤如下所示: ```bash git rebase -i HEAD~n # 启动基于文本的选择模式来挑选哪些提交要重写 ``` 接下来会出现一系列由下至上排列着按照时间顺序列出的所有相关联的操作项目列表;找到对应的那条记录前面标有 'pick' 关键字的那一行并将其改为 'reword'(简写作r),保存退出后就会逐一对选定的目标提示让你逐一确认新的标题和备注了... 请注意:当涉及到多人协作共享同一个远端repo的时候,请尽量避免对已发布的提交进行任何形式上的篡改编缉动作以免引起不必要的冲突!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值