Open alwaystest opened 8 years ago
标签(空格分隔): Git
ssh -T git@github.com
测试Git的ssh
Git rebase -i head~x
把在一个分支里提交的改变移到另一个分支里重放一遍。 此时,如果commit里面存在两个parent,即这个commit是从两个分支合并过来的,这个commit 不会被选到。但是在我们开发的混乱的代码分支上,如果不pick这个commit,就会导致代码丢失。 我的解决方法是手动添加这次commit,执行到这次commit的时候会报错。 通过报错可以发现,rebase的时候使用了cherry-pick这个命令,这条命令需要一个-m [1|2]选项,指定此次的patch是针对于哪个父commit的。可以通过git log --parents 看到commit的parents,-m的1代表第一个parent,2代表第二个。 手动进行cherry-pick之后再git rebase --continue。 写Blog的时候才想到搜索的关键词是 rebase merge commit。 现在我们有了: 解决办法 另一种办法 当然,如果测试的过程当中出了问题,请使用git reflog 和git reset --hard来反悔 参考:
把在一个分支里提交的改变移到另一个分支里重放一遍。 此时,如果commit里面存在两个parent,即这个commit是从两个分支合并过来的,这个commit 不会被选到。但是在我们开发的混乱的代码分支上,如果不pick这个commit,就会导致代码丢失。
我的解决方法是手动添加这次commit,执行到这次commit的时候会报错。 通过报错可以发现,rebase的时候使用了cherry-pick这个命令,这条命令需要一个-m [1|2]选项,指定此次的patch是针对于哪个父commit的。可以通过git log --parents 看到commit的parents,-m的1代表第一个parent,2代表第二个。 手动进行cherry-pick之后再git rebase --continue。
cherry-pick
-m [1|2]
git log --parents
-m
git rebase --continue
写Blog的时候才想到搜索的关键词是 rebase merge commit。 现在我们有了: 解决办法 另一种办法
rebase
merge
commit
当然,如果测试的过程当中出了问题,请使用git reflog 和git reset --hard来反悔
git reflog
git reset --hard
Git rebase正确流程 Git 常用命令解释
Git 相关
标签(空格分隔): Git
ssh -T git@github.com
Git rebase -i head~x
Git rebase正确流程 Git 常用命令解释