git rebase 合并当前分支的多个commit记录

简介: git rebase 合并当前分支的多个commit记录

git rebase 相关的选项和用法

step1:找到想要合并的 commit

你可能出现过对同一处代码进行多次处理的场景。这会导致如下提交记录

在gitee中也是两个同样的提交记录

其实,2次提交完全可以合并成一次 commit,这个时候 rebase 就很有用了。

step2. 使用 rebase -i

#git rebase -i HEAD~n
#这里的 n 是你想要合并的提交数量加一。例如,如果你想要合并最近的三个提交,就使用 HEAD~3。
git rebase -i HEAD~2
#退出交互式 rebase 状态
git rebase --abort

step3. 编辑提交历史:

执行上述命令后,会打开一个交互式编辑器,列出了你选择的提交。每个提交前面都有一个操作标记(通常是 pick)。将你想要合并的提交前的操作标记改为 squashs(表示“合并”),这将把这

个提交与前一个提交合并

打开交互编辑器如下:

pick e247817c1 支持使用json/yaml或excel方式来创建角色
pick 9d87c9c09 支持使用json/yaml或excel方式来创建角色

# Rebase 6b019ef89..9d87c9c09 onto 6b019ef89 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#

step4.编辑合并后的提交信息

pick e247817c1 支持使用json/yaml或excel方式来创建角色
s 9d87c9c09 支持使用json/yaml或excel方式来创建角色
#修改内容 :wq保存

完成上述操作后,保存并关闭编辑器。Git 将会合并这些提交,并打开一个新的编辑器窗口,让你编辑合并后的提交信息。在这里你可以编辑合并后的提交信息,或者保持原样。

#支持使用json/yaml或excel方式来创建角色 这一行打开时是没有注释的,注释掉。

# This is a combination of 2 commits.
# This is the 1st commit message:

支持使用json/yaml或excel方式来创建角色

# This is the commit message #2:

#支持使用json/yaml或excel方式来创建角色

step5.完成 rebase 过程:

保存并关闭编辑器。Git 将会完成 rebase 过程,并应用你的修改。

step6.推送更新:

#如果你在一个公共分支上进行了 rebase 操作,需要使用 --force(或 -f)选项推送更新到远程仓库,
#因为 rebase 改写了提交历史,可能会导致远程仓库的提交历史与本地不一致。

#强行推送
git push -f origin WC-1009

step6.再次查看提交记录:

一些常用git 命令

#拉取
git pull origin  WC-1071
git init:
#说明: 在当前目录创建一个新的 Git 仓库。
#用法: git init [directory]
#示例: git init(在当前目录初始化一个仓库)或 git init my_project(在名为 my_project 的目录中初始化一个仓库)。
git clone [url]:
#说明: 从远程仓库克隆一个项目到本地。
#用法: git clone [url] [directory]
#示例: git clone https://github.com/example/project.git(克隆名为 project 的仓库到当前目录)或 git clone https://github.com/example/project.git my_project(克隆到名为 my_project 的目录)。
git add [file]:
#说明: 将文件添加到暂存区,准备提交。
#用法: git add [file]
#示例: git add index.html(将 index.html 添加到暂存区)或 git add .(将当前目录下所有修改的文件添加到暂存区)。
git commit -m "message":
#说明: 提交暂存区的文件到本地仓库,并附上一条说明信息。
#用法: git commit -m "message"
#示例: git commit -m "Added login functionality"(提交并附上说明信息)。
git status:
#说明: 显示工作区、暂存区和本地仓库的状态。
#用法: git status
#示例: git status(显示当前状态)。
git diff:
#说明: 显示工作区和暂存区的文件差异。
#用法: git diff
#示例: git diff(显示工作区和暂存区的差异)。
git log:
#说明: 显示本地仓库的提交历史。
#用法: git log
#示例: git log(显示提交历史)。
git pull:
#说明: 从远程仓库拉取最新的提交到本地,并尝试合并到当前分支。
#用法: git pull [remote] [branch]
#示例: git pull origin master(从远程的 origin 仓库的 master 分支拉取最新提交并合并到当前分支)。
git push:
#说明: 将本地仓库的提交推送到远程仓库。
#用法: git push [remote] [branch]
#示例: git push origin master(将当前分支的提交推送到远程的 origin 仓库的 master 分支)。
git branch:
#说明: 显示本地仓库的分支列表。
#用法: git branch
#示例: git branch(显示分支列表
git checkout:
#说明:切换分支
#用法: git checkout <branch>
#示例: git checkout master

#创建并切换到新的分支:
git checkout -b <new_branch>


相关文章
|
1月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
107 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
1月前
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
335 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
2月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
66 2
Git创建分支以及合并分支
|
1月前
|
开发工具 git
Git分支使用总结
Git分支使用总结
35 1
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
144 4
|
2月前
|
测试技术 开发工具 git
掌握 Git 分支策略:提升你的版本控制技能
在现代软件开发中,版本控制至关重要,Git 作为最流行的分布式版本控制系统,其分支管理策略对于高效协作和代码维护尤为重要。本文介绍了几种常用的 Git 分支策略,包括主线开发模型、功能分支模型、Gitflow 工作流和 Forking 工作流,并探讨了如何根据项目需求选择合适的分支模型。通过保持 `master` 分支稳定、及时合并清理分支、使用命名规范、利用 Pull Request 进行代码审查及自动化测试等最佳实践,可以显著提升团队协作效率和软件质量。掌握这些策略将帮助开发者更好地管理代码库,加快开发流程。
|
2月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
236 3
|
开发工具 git 开发者
git使用—rebase还是merge
转载自:https://segmentfault.com/q/1010000007704573/ 我猜现实中的情况是这样的: 使用 git 的人群中,不会用 rebase(哪怕是基础功能的)的至少一半(这个估计恐...
1575 0
|
13天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
35 1
[Git]入门及其常用命令