基础概念
fetch // 把服务器代码拉倒本地分支"FETCH_HEAD"
merge // 将制定分支的代码合并到当前分支
pull // fetch + merge
push // 将当前分支推送到远程分支
个人理解的rebase提交代码的顺序
- 先commit到本地master
注:为保险起见可以拷贝一个备份分支,保证代码不丢失 - fetch将远程的代码拉到“FETCH_HEAD”分支
注:保证不要使用远程分支进行rebase,错误操作会让队友很无奈 - 打开rebase窗口,选择上游分支为“FETCH_HEAD”,执行操作
- push推送到远程
注:推送到远程时,如果遇到有新代码提交,重新从第二部开始
优势
- 提交的代码在远程服务器是一条直线,历史记录清晰
使用场景
- 当前阶段的同组人员开发,力保证历史清晰
避免使用场景
- 版本并线开发,双线合并时,使用merge,保证两个版本的提交历史
- 主分支上尽量不要(前辈的经验,目前想想不到)
注:因为未经过太多的实践,所以可能观点会出现混乱的现象,如有问题,还请大神提出。
例子(小乌龟)
- 使用Git Sync菜单,比较方便
- 执行commit
- 执行Fetch & Rebase操作
- 切换上游分支到FETCH_HEAD(可能非必要,需要实验证明),并执行Start Rebase
- 推送到远程服务器(遇到有新的提交时,从Fetch & Rebase操作重新开始)