git项目实战常用workflow和命令

时间:2024-04-09 10:05:56

一个从无到有的项目大体经历-创建项目目录,创建repo,配置过滤集,配置git user,导入已有基础代码入库,将库放到central去,建立分支,修改代码,checkin代码,分支上

测试验证代码,merge稳定代码回主线,打tag,push到*库分享

mkdir app
   cd app
   git init
   cd .git
   vi description
   cd info
   sudo vi exclude

cd ../../ (app目录)
   git add --all
   git commit

 git checkout develop :创建一个永久的branch : develop用于项目组做下一个release的开发

 git checkout featureteam_xxxfeature :创建一个为team开发共享半临时的分支: featureteam_xxxfeature

git remote add origin https://xxx@github.com/xxx/yyy.git

git push origin master  :将上述项目的baseline,所有供开发测试的永久分支push到*库中

在生产服务器上

git clone https://xxx@github.com/xxx/yyy.git /var/www/html/www/mywebsite

项目组开发环境中:

git clone  https://xxx@github.com/xxx/yyy.git

git checkout --track develop  :项目成员创建一个local tracking branch,和*库的develop建立映射关系

git checkout --track featureteam_xxxfeature :项目组feature team创建一个local tracking branch,和*库的featureteam_xxxfeature建议映射关系,以便共享工作和协同开发

//git checkout -b develop 创建一个integration分支用于集成所有的feature

git checkbout -b xxxfeature_zhangsan :创建xxxfeature分支下面的_zhangsan分支,以便本地开发,并且最终merge到xxxfeature分支,并且push相对稳定的版本到*库。注意:之所以不直接在featureteam_xxxfeature这个feature team共用的分支上直接开发,是因为有可能在本地开发过程中,需要pull feature team其他成员的贡献到这个分支。
   git branch -a
   git commit -a -m "your commit msg"

git checkout featureteam_xxxfeature

 git merge xxxfeature_zhangsan  :merge zhangsan的修改到xxxfeature_zhangsan公共分支上

git push origin xxxfeature_zhangsan :分享自己测试完毕的feature代码

git checkout develop
   git merge featureteam_xxxfeature  :由team leader来做整个feature的merge,并且push分享到develop集成流上去

git push

 测试。。。

继续集成其他的feature,测试,版本基本稳定后

 git checkout master

git merge develop

git tag Release2.0 //所有稳定准备放到服务器上部署的版本都放在master branch上

git push origin master

生产环境服务器上执行:

git pull origin master 部署新的代码

如果要在生产环境上rollback,则只需要git checkout Release1.0即可。当然在生产环境下的部署还有一些额外的工作,比如数据库schema也发生了变化,生产数据的导入等,可以通过hook来自动实现