1. git(五 合并提交命令)
场景 :本地做了四次提交,想把第 2、3、4 次提交合并,只保留第二次提交的commit message
解决方案 :
1、git reflog 查看所有的提交记录
p.s. git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作);git log 命令可以显示所有提交过的版本信息,看不到删除的记录。所以买后悔药回退删除记录的时候,可以用 git reflog
上面的图片展示了,一共四次提交,按照时间倒序排列分别是 第 4、3、2、1次提交
2、git rebase -i “最新的一个想保留的 Commit”
意思是,我想合并2、3、4,那么最新一个想保留的 commit 就是 第一次 commit,他的hash值为 ae9c811,输入下列命令并回车
或者
3、选择要合并的 commit :上述步骤完成后会跳出下图界面
注意这个时候的顺序:最近一次提交在最下面
前面三行是我们需要操作的三个 Commit,每行最前面的是对该 Commit 操作的 Command。关于每个 Command 具体做什么,下面的注释写得非常清楚。为了完成我们的需求,我们可以关注到这两个命令:
我们可以选择把第 3、4 次的commit message合并到第二次上面,修改command如下,并保存退出:
4、编辑合并 commit 的 commit message
上述步骤完成后,会跳出如下界面
5、检查:使用git log检查
结果如下:
注意,使用git reflog仍可以查看最初的命令:
两者的区别在于,git log只显示保留的,git reflog可以显示 reset 和 rebase、删除的版本
编译器的可视化git工具中的展示:
这个时候再push,提交记录上就非常好看了
请注意 :
2. git 怎么提交合并分支的部分代码
git 怎么提交合并分支的部分代码?对于复杂的系统,我们可能要开好几个分支来开发,那么怎样使用git合并分支呢?
合并步骤:
1、进入要合并的分支(如开发分支合并到master,则进入master目录)
git checkout master
git pull
2、查看所有分支是否都pull下来了
git branch -a
3、使用merge合并开发分支
git merge 分支名
4、查看合并之后的状态
git status
5、有冲突的话,通过IDE解决冲突;
6、解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
7、提交merge之后的结果
git commit
如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
8、本地仓库代码提交远程仓库
git push
git将分支合并到分支,将master合并到分支的操作步骤是一样的。
3. git 自定义命令,合并多个命令
问题:如何自定义命令,如何将多个命令进行合并执行?
通过给命令起 别名 的方式,来简化命令
解析:
别名语法 git config --global alias.【别名】 '【执行的命令】'
执行函数: !f(){ 【命令】; }; f :表示定义f函数,并执行
相当于执行 git add .
合并命令为rpush:检出新的分支
解析:
别名语法 git config --global alias.【别名】 '【执行的命令】'
执行函数: !f(){ 【命令】; }; f :表示定义f函数,并执行
A&&B :与符号,执行A成功后,执行B
$1 :表示变量
相当与执行以下命令