1、cherry-pick
git branch //查看本地分支
git branch -r //查看远端分支
git checkout dev //切换分支
git pull origin dev //拉取远端dev分支
git fetch --all && git reset --hard origin/master && git pull //如果上一步有冲突,强制与git远程仓库保持一致
git cherry-pick 8aebee182e77d85b237171b079e9bbc37896171f//将commit拉到dev分支
git push origin dev //提交到dev
Cherry pick 支持一次转移多个提交。
$ git cherry-pick <HashA> <HashB>
上面的命令将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。
如果想要转移一系列的连续提交,可以使用下面的简便语法。
$ git cherry-pick A..B
上面的命令可以转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。
注意,使用上面的命令,提交 A 将不会包含在 Cherry pick 中。如果要包含提交 A,可以使用下面的语法。
$ git cherry-pick A^..B
2、合并多次提交
https://blog.csdn.net/jerechen/article/details/89556281
git rebase -i HEAD~2 合并前2个提交
将第二行的pick改成s, 也就是squash(挤压合并),作用是:使用提交,将此提交与之前的提交合并。 然后保存文件退出vim。
git commit -a
git push origin test -f
3、从繁多的提交中找出异常提交
http://www.ruanyifeng.com/blog/2018/12/git-bisect.html
git bisect命令
4、强制重置本地到远程的版本
git reset --hard origin/branchName
5、git pull命令有冲突如何解决
git stash: 将本地记录缓存
git pull :拉取本分支代码
git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复
6、git如果操作错误,想回退操作:
git reflog:git的本地操作记录,可以配合git log检查要回退的索引
git reset --hard 上一步查询到的索引:回退到索引