推送主分支
执行前:
命令:
//git fetch;git rebase o/master
git pull --rebase;//git fetch origin master:master
git push;
执行后
合并远程仓库
例子练习:
rebase处理
命令
//更新远程分支
git fetch
//git rebase <分支1> <分支2>:将分支2rebase到分支1
git rebase o/master side1
git rebase side1 side2
git rebase side2 side3
git rebase side3 master
git push origin master
rebase的优点:可以使提交数变得很干净,所有提交都在一条线上;
rebase的缺点:修改了提交树的历史(提交的顺序)
merge处理
//切换到master分支
git checkout master
git pull
git merge side1
git merge side2
git merge side3
git push
远程跟踪
master(本地分支) 和 o/master(远程分支) 的关联关系是由分支的“remote tracking”属性决定的。指定了master 分支推送的目的地以及拉取后合并的目标。
自定义指定本地分支关联的特定的远程分支
方式一:创建新分支去跟踪远程分支
git checkout -b newBranch o/master;//创建一个newBranch 分支,跟踪o/master分支
执行前:
git checkout -b foo o/master;
git pull//注意master分支没有跟着一起更新
执行后
执行前
git checkout -b foo o/master;
git commit;
git push;
执行后
方式二:用本地已有的分支去跟踪远程分支
//使用git branch -u <远程分支> <本地分支>
git branch -u o/master foo //如果当前就在foo分支上,就可以直接省略后面的foo
执行前
git branch -u o/master foo;
git commit;
git push;
执行后
例子练习
git checkout -b side o/master;//创建side分支与远程分支o/master进行关联
git commit;
git fetch;
git rebase o/master side;
git push;
**
远程分支版本回退
**
先回退好本地分支,然后再推到远程
代码:
//回退本地分支可用reset、revert
//推到远程,如果直接只有git push,会报错,因为提交的记录落后于远程分支的记录
git push -f -u origin <分支名>//相当于强制性的改变改远程分支的指向
或git push -f