Git--commit提交压缩

Git–commit提交压缩

第一种:通过编辑器IDE(亲测)

我使用的是idea,通过idea进行commit压缩。
第一步: 选择当前分支,然后查看版本控制(Version Control),展示出提交记录,比如,我在图中标注的七条提交记录,通过commit-message 可以清晰的看出来,1-2、3-4是同一类或者相同的提交。
第二步: 想压缩1-2的提交,可以右击1 提交,弹出功能框,如图二展示。
Git--commit提交压缩_第1张图片
Git--commit提交压缩_第2张图片
选择红框的选项(从当前位置开始进行Rebase)。
第三步: 点击该功能,弹出可进行压缩的commits.如图所示:
Git--commit提交压缩_第3张图片

#功能解释
# 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

第四步: 其中可选择功能,我们使用squash,基commit是pick,往下可选择为squash(使用提交,但合并到上一个提交中),所以要合并的commit之间不可有间隔commit,会导致混乱。
第五步: 添加新的commit-message。
Git--commit提交压缩_第4张图片
第六步: 当需要压缩的commit 按照以上步骤完成之后,可以进行push,如果有,冲突,先进性merge再进行push.

注意: 在进行Rebase时,应避免 git fetch 合并代码操作,否则会导致之前的commit还会存在。如果发生这种情况,可通过在你想要压缩的第一个commit前一个提交,创建一个新的分支(Branch),在新分支上进行远程代码合并,合并完成之后,再把自己之前的提交进行 cherry-pick,然后再进行 Rebase

第二种:通过命令行(未使用)

第一步: 通过命令 git log 查看提交记录
Git--commit提交压缩_第5张图片
第二步: 执行变基git rebase -i HEAD~ 或 git rebase -i
其中 num :是指从头部开始追溯n条记录; commit :是指 提交记录code,变基提交所在commit。
Git--commit提交压缩_第6张图片
第三步: 执行命令之后进入到编辑模式,通过修改commit 中的动作,进行压缩。把 需要合并的pick改成squash

# 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

然后进行保存。push 之前,如果有冲突,先结解决冲突。

# 取消变基:
git rebase --abort
# 如果没有冲突打断变基的话,不用执行continue
git rebase --continue
# 操作完git push 后,会看到压缩情况的信息
git push -f origin branch_name

你可能感兴趣的:(idea,遇到的问题,git)