前记:在git之前依稀记得有SVN去管理代码仓库,现在多用git去管理我们的代码;现在一般的项目大多数是多人同时开发,这样就会存在一个问题就是如何去协调开发;这也是lz当前使用git开发管理的些许经验,特记录下以供参考!
step1-------git常用命指令:
//git init ----在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. //git clone ----获取一个url对应的远程Git repo, 创建一个local copy.一般的格式是git clone [url]. //git status ----查询repo的状态 git status -s: -s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言. //git log ----查看本地分支操作记录 //git add ----在提交之前,Git有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动. commit时提交的改动是上一次加入到staging area中的改动,而不是我们disk上的改动. //git add . ----会递归地添加当前工作目录中的所有文件. //git commit ----提交已经被add进来的改动.git commit -m “the commit message" //git push ----提交本地分支到远程分支 //git branch ----git branch可以用来列出分支,创建分支和删除分支. //git branch -v----可以看见每一个分支的最后一次提交. //git branch: ----列出本地所有分支,当前分支会被星号标示出. //git branch (branchname): 创建一个新的分支(当你用这种方式创建分支的时候,分支是基于你的上一次提交建立的). //git branch -d (branchname): 删除一个分支. //git checkout (branchname) ---切换到其他分支 //git checkout -b (branchname): 创建并切换到新的分支. //git merge ----把一个分支merge进当前的分支. //git tag ----会在一个提交上建立永久性的书签,通常是发布一个release版本或者ship了什么东西之后加tag. //git pull ----git pull会首先执行git fetch,然后执行git merge,把取来的分支的head merge到当前分支 //git remote -v:可以看见每一个别名对应的实际url. //git remote add [alias] [url]: 添加一个新的remote repo. //git remote rm [alias]: 删除一个存在的remote alias. //git remote rename [old-alias] [new-alias]: 重命名. //git remote set-url [alias] [url]:更新url. 可以加上—push和fetch参数,为同一个别名set不同的存取地址. //git revert ---- git revert HEAD: 撤销最近的一个提交.
以上为git常用的一些命令,当然有兴趣的同学可以阅览廖雪峰的git教程;PS:lz工作中用的是sourceTree界面git管理工具;感兴趣的同学可以参考这篇博文sourceTree入门;
step2------进入正题;如何多人进行开发
首先lz展示下开发中的git仓库分支;
正如上图lz有一个release远程分支,这个是线上的项目分支;这里面的代码确保是线上最新的代码;同时,还有其他每个开发同学的对应分支,这些分支都是从release中创建出来的。每新增一个开发同学,第一件事就是从release分支上创建一个属于自己的分支;
比如:现在A、B同学有个需求就是添加一个首页弹窗和新增页面需求;我们的工作流程是如下图:
整体的流程按照如此去做即可,我们其实在项目中还会遇到一些情况,就是webpack中一些配置信息的冲突;所以我们一般是把项目分为业务负责人以及公共模块负责人,这样一些公共部分只有这个同学去负责人就好,其他人只需去更新自己的代码以及业务代码;还有一些vue项目会涉及到配置各自页面路由时候会引起冲突;这里建议用路由合并的方法避免冲突即可;
最后还有一点一定要求每个同学一定要做好代码提交以及更新;不然比较头疼,只要大家按部就班,多人开发还是比较愉快的。
由于近期一直在思考这个项目管理的问题,所以一定要按照流程做事这样才能提高效率;
以上仅为个人看法,欢迎提意!