目录
一、git merge:保留了原有分支的提交结构
二、git rebase:提交分支更加整洁
三、git stash
四、git cherry-pick
共同点:将 一个分支的提交 合并到 到另一个上分支上去
一、git merge:保留了原有分支的提交结构
现有一个模型如上所示:master 分支有1 2 3 5 7节点, develop 分支有4 6节点;
在 master 分支上执行 git merge 分支名 含义:将 develop 上的分支提交合并到 master 上,合并的时候是基于3 7 6节点合并,生成最新的提交记录 ——> 8节点;
二、git rebase:提交分支更加整洁
git rebase origin/分支名一般:
git rebase origin/master
三、git stash
git stash:将工作区中已经保存的 和 暂存区的代码进行压栈保存;
使用场景:
场景一:在分支 A 上正在工作,分支 B 上有个 bug 要处理;
git stash // 在分支 A 上执行该操作,将分支A上的修改代码进行保存
git checkout B // 切到分支 B,并处理 B 分支上的 bug
git checkout A // 切回到分支 A
git stash pop // 将 A 分支之前保存的修改代码进行恢复操作
场景二:冲突:代码开发完了准备提交,在 commit 之前,建议拉一下远端的代码;
git stash // 将本地修改代码进行保存
git pull // 拉取远端代码
git stash pop // 将保存的代码弹出
本地处理可能出现的冲突
git commit // 提交操作
git push
实例演示:
四、git cherry-pick
将一个分支的提交记录,合并到另外一个分支;
git cherry-pick commitid // 提交一个commit记录
git cherry-pick commitid1 commitid2 // 提交多个commit记录
git cherry-pick commitid1..commitid2 // 提交多个连续commit记录
git cherry-pick commitid1^..commitid2 // 提交多个连续commit记录,不包含commitid1记录
之后会有冲突: