git(v3版本)工作流程
实例模拟:操作一个channel仓库,channel仓库里面又包含一个ecommon仓库,则有:
channel仓库,ecommon子仓库【是channel仓库、其他仓库的子仓库,仓库管理员都关闭了对ecommon子仓库修改的权限】
在channel仓库里面创建一个属于自己开发功能代码的分支如:
git checkout master //检出master分支 git pull origin master //获取最新远程master分支代码 git checkout -b junhua //创建一个属于自己开发的junhua分支
一段时间过后,你再在junhua分支上面工作:
git checkout junhua //检出junhua分支 git pull origin junhua //获取junhua分支最后一次提交代码【有可能别人修改了你的junhua分支】 git status //查看分支状态
如果管理员修改并提交了ecommon仓库代码,则会提示ecommon子仓库有更新,那么:
cd ecommon //进入ecommon仓库 git pull origin master //获取ecommon最新代码 cd .. //返回到junhua分支 git status //查看分支状态 git add . //把修改放入暂存区 git commit //本地提交,并在弹出的日志文本中写上提交日志,保存关闭 cd ecommon //进入ecommon仓库 git log //查看当前的Hash值是否与ecommon最后一次提交的Hash值一样
【注:如果不一样,则更新失败,原因可能是你没有执行上面一步骤git pull origin junhua,获取junhua分支最后一次提交的代码】
/*如果是一样的话,那么就在junhua支上开发自己新的功能代码开发完以后,进行本地提交,然后:*/ git checkout daily/xxxxxx /*那么基于junhua分支创建一个daily/xxxxxx分支,假如:*/ git checkout daily/120203 /*创建一个daily/120203的daily分支*/ git push origin daily/120203 /*上面一命令:首先会更新远程daily/120203分支,然后会自动git checkout master,git pull origin master,git checkout daily/120203, git merge master,最后开始执行打包脚本*/
git tag publish/120203 //创建一个tag git push origin/120203 //发布tag里程碑 /*首先更新远程daily/120203分支代码, 切换到master分支,基于master分支新建并切换到发布分支publish/120203, 合并daily/120203分支代码到publish/120203分支,开始执行打包脚本, 将代码提交到svn版本库,提交完成,准备发布CDN,给出一个文件代码的cdn地址, 发布成功!*/ /*tag发布成功以后,远程daily/120203分支代码已经合并到远程master分支上了 执行git fetch -p 可以查看到origin daily/120203分支已经删除,origin master 有了新的Hash值。*/
最后一步,更新本地master分支代码
/*因为,远程的master分支中的ecommon代码已经更新了,但是本地master分支没有任何更新*/ git checkout master git pull origin master //获取远程master分支代码