1、需要将master分支上的某次提交快速的合入到master-dev分支上?
Step1:git checkout master-dev (切换至master-dev分支)
Step2:git checkout .(保证本地环境干净)
Step3:git cherry-pick xxxxxx(在master分支上已经提交成功记录的commit-id)
Step4:如果有冲突,则先解决冲突,可以通过git status 查看“双方修改的---文件”(搜索"<<<<","====",">>>"都可以找到冲突的地方) 如果冲突太多,也可以手动用meld diff工具进行merge.
Step5:解决完冲突之后,git add xxxx(文件名)
Step6:git cherry-pick continue(继续提交,这一步相当于git comm xxxx)
Step7:git push origin HEAD:refs/for/master-dev(将本次修改push到远程master-dev仓库)
2、如何回退某个文件的修改?
git reset xxxxxxxxx(commit-id) ssssss(文件名称)
如:git reset 152a1dc8a4c6b525d4ba86ca7f2af05d2cc252c2 MyActivity.java
3、如何在git里面打tag(常用于发布版本时,标记这次提交)?
如:要发布一个正式版本时,可以如下这个打tag
新增tag: git tag -a v1.2.0 -m "教育版v01"
推送tag到服务器: git push --tags
删除远程tag: git push origin --delete tag v1.2.0
删除本地tag: git tag -d v1.2.0
4、有时会碰到提交失败的情况,大部分可能是本地代码要么比服务器早,要么比服务器晚.如何解决?
方法一:
Step1:git reset --soft xxxxxx (先回退到一个比较旧的节点)
Step2:git pull
Step3:git commit xxxxxx
Step4:git push origin HEAD:refs/for/master(push到远程master仓库)
方法二:
Step1:git stash //将当前修改保存到内存(只包含修改的部分)
Step2:git stash list //列出当前内存的修改
Step3:git stash pop //将当前内存中的棧顶合入当前文件系统.
Step4:git pull --rebase
Step5:git commit xxxxxx
Step6:git push origin HEAD:refs/for/master