1.要把本地的两个提交合并成一个
在sourceTree 选中两个提交的下面的父节点提交
右键 交互式变基的子提交
用以前的提交来squash 全选后 可编辑提交信息 然后点击确定
这时 本地仓库已经合并为一个分支 但是远端还没有push
git status 可以看到本地仓库和远端仓库有different
所以要在项目终端 git push -f 强制让本地仓库覆盖远端仓库 保持本地和远端一致
2.本地提交并且 push到远端
添加全部修改 终端git add .
带备注提交 终端git commit -m “[备注]具体备注”
推到远端仓库 终端git push
3.从别人的分支上check部分提交到自己的分支
git checkout .
切到别人的分支 git checkout feature/xxx(找到你要截取的commit-id)
切回自己的分支 git checkout feature/me
a.选取一个commit提交拉取 git cherry-pick a5a80a008(单个commit-id)
b.选取片段提交拉取 git cherry-pick a5a80a008..219bd14d1 (这是commit-id区间 )
左开右闭 开始的提交到结束的提交
cherry-pick --continue
有冲突需要解决 解决后点+号添加(或者解决完保存后 git add .)
解决冲突后再cherry-pick --continue 直到没有冲突
执行一遍本地提交并且 push到远端
4.自己分支合并beta分支
git branch 查看当前所在分支 绿色标志为当前所在分支
git checkout beta/xxx 切换beta分支 执行git pull拉取最新
git checkout feature/me 切换分支
git rebase beta/xxx 合并beta分支
若无冲突则会直接提交成功 有冲突执行以下操作:
分支上有太多需要rebase 可以先交互式变基将自己分支上多个提交合并成一个
这时可执行一次rebase回退操作
git rebase --abort
解决完冲突后 执行提交 再次合并bata分支 这时候自己分支就合并好了beta最新的代码
git add .
git rebase --continue
5.把本地分支提交到beta分支
前提:自己分支上有多个提交 先交互式变基为一个提交再merge beta 避免多次解决冲突
==> 切到beta git pull到最新
==> 切回feature/me
git rebase beta合并;然后git push -f
==> 切回beta;
直接用git merge feature/me
一大串提示莫慌 :q 退出就行
最后如果要推送就 git push
注意记得切回自己分支 以免在主分支改代码了
(或者git merge feature/me --no-ff 方便回退 但是sourceTree看着不清晰)
6.在一个分支上创建一个新分支
git checkout beta/xxx
git checkout -b feature/new
git push
git push --set-upstream origin feature/new
7.常用:回退到指定commit
git reset --soft cbcc453bf
8.常用:本地暂存
git stash 本地暂存
git stash pop 弹出本地暂存
9.其他常用:
git branch 查看当前所在分支
git status 查看本地仓库和远端仓库差异
git push -f 强制让本地仓库覆盖远端仓库