文章目录
分支管理
git stash
gitmerge与git rebase
git merge --squash
cherry-pick
分支管理
命令 | 作用 |
---|---|
git branch | 查看当前分支 |
git checkout/git switch 分支名称 | 切换分支 |
git merge 分支名称 | 将指定分支合并到当前分支 |
git branch -d 分支名称 | 删除指定分支 |
git diff 分支名称1 分支名称2 | 显示两个分支之间的差异 |
git diff 分支名称1 分支名称2 file | 显示两个分支之间指定文件的差异 |
git stash | 临时封装 |
git stash
Git stash 临时封装 (快照)使用场景:当前分支没有开发完,需要切换到其他分支。Your local changes to the following files will be overwritten by checkout ,please commit your changes or stash them before you switch branches。您本地对以下文件的更改将被checkout覆盖,请在切换分支之前commit或将其stash。
解决 :在其他分支操作完之后,切换到了原来分支需要取出stash中刚刚保存的东西:git stash apply stash{数字},就会恢复到切换分支之前的代码。之后就可以删除stash临时存放的东西,当然也可以不删,删除stash记录:git stash pop(删除顶端)与 git stash clear(删除所有)
gitmerge与git rebase
git merge | git rabase |
---|---|
合并 | 变基 |
idea可视化页面会显示分支的合并 | idea可视化页面只有一条线 |
注意:不建议在多人合作的公共分支上使用rebase,假设向A合并B分支,尽管B分支的commit记录比A分支的早,假设A分支的最后一次commit是在早上9点,B分支的三条commit记录是在早上8点,7点,6点,向A合并B的时候,这三条commit记录会变成你合并时候的时间9点01分,从而会跑到A分支的上边。
git merge --squash
向A合并B分支,B分支有太多的commit记录,如果直接合并,所有的commit记录会直接合并到A分支,影响A分支的可观察性,git merge --squash 会将B分支的所有commit记录合并为一条提交到A分支上。
cherry-pick
向A合并B分支,B分支有太多的commit记录,既不想变成一条也不想全部提交commit记录,就可以用cherry-pick挑选几个提交。在idea可视化工具里边,会有想樱桃一样的图标,那个就是cherry-pick,按住shift选择几个commit记录点击樱桃图标就可执行。