-
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html cherry-pick合并分支的部分commit
git 查看版本树
git log --oneline --graph --decorate --all
git reset revert 区别
https://www.css3.io/hui-gun.html
- git reset –-soft:回退到某个版本. 将这中间回退的commit都并入暂存区, 暂存区内本来有的改动不会丢, 不会动文件区.
- git reset -–hard:彻底回退到某个版本,本地文件区变为该版本, 丢弃撤销的commit和暂存区中所包含的更改;
reset时只应修改本地的提交链, 不应影响公共提交链. (否则一方面造成与远端的提交树冲突, 另一方面可能会冲掉别人的工作成果)
git revert 用法
git revert
只能抵消上一个提交, 相当于做出了一个新提交, 该提交的改动是上一个提交的反操作.
另外可参考:
当撤回到合并分支之前时, 需要决定退到分之前的哪一条路, 建议执行git help revert
并查看-m
参数. 一般不会有人撤回合并操作.
git rebase
- git rebase 拆分commit
- git rebase 撤销合并
-
http://jartto.wang/2018/12/11/git-rebase/讲了合并多个commit与合并远程分支
git merge/rebase使用总结:
在master分支执行git merge b2
或在子分支上执行git rebase master
或者在git pull
以后执行git rebase master
都可.
rebase合并远端分支
- https://zhuanlan.zhihu.com/p/34197548 讲了如何合并远程分支
- https://backlog.com/git-tutorial/cn/stepup/stepup2_8.html git rebase master
当你在master进行一次commit后, git push
发现远端有了别人的commit, 你可以做如下之一:
-
git pull origin xxx --rebase
用来更新远端代码 git rebase master
撤销已push的merge, 并rebase
假如当下有这样的分支情况:
由图可见,该merge已经推送到origin. 现在我们希望将merge撤销, 将并两个分支合并成一个分支.
然后遵循https://backlog.com/git-tutorial/cn/stepup/stepup2_8.html中的教程,可见
执行git rebase --continue
后
这时候
git checkout master
后, 再执行如下:最后进行清理:
git branch -D b2
git push origin master -f
删除refs/stash
https://stackoverflow.com/questions/5737002/how-to-delete-a-stash-created-with-git-stash-create
git stash list
列出所有stash分支,
然后git stash drop stash{no}
删除指定的stash分支, 其中no
是分支编号
网友评论