您的位置:首页 > 其它

[GIT] playframework+intellij + git使用流程

2016-05-19 17:26 309 查看
学习小结,如有错误,欢迎指正。

1. gitHub或bitBucket上创建远程版本仓库

2. 创建本地版本仓库, 如在/study/helloworld目录下创建appservice项目

说明:

- 远程到版本库目录为helloworld

- .gitignore在helloworld目录下

a. 在study目录下创建README.txt(不是必须);

b. 创建play!项目并转换成intelij项目, 项目名为appservice;

play new appservice


转换成intellij项目

play idealize


c. 创建.gitignore

在需要远程到仓库的路径/study/helloworld/下创建.gitingore

vi .gitignore


假设配置【不提交到远程仓库文件】:appservice.ipr, appservice.iml, appserver.iws

则配置路径为.gitignnore所在目录出发的相应路径下,即

/appservice/appservice.ipr

/appservice/appservice.ipr

/appservice/appservice.iws

3. 关联本地与远程仓库

a. 初始化git

git init


b. ls -ah查看是否生成.git

c.关联本地与远程仓库

git remote add origin XXXXXXXXX //第1步创建的远程仓库地址


d. 第一次推送

git push -u origin master


如果d步骤失败,很有可能是尚未把工作区提交到本地仓库,则执行以下步骤

git status

git add fileName

git commit -m “提交描述”

git push origin master

完成以上步骤后, 确认远程仓库是否正常提交。

4. 项目导入intellij并执行分支开发

分支开发方式:

- 版本库主要有两种类型分支:主要分支:master(发布分支)与dev(开发分支), 长期保留; 临时分支:feature(功能分支)、release(预发布分支)、bugfix(修补分支),使用完需要删除;

- master 存放最新的已发布版本(稳定版,用完不删);

- dev 存放所有新功能开发的合并版本(开发版本,用完不删);

- release 预发布版本(测试版本,用完需删),release版本测试没问题, 再把master版本与release合并, dev版本与release版本合并

- dev-dan存dan负责的功能开发版本(各自开发版本,即feature分支,用完需删);

- bugfix (修复分支,用完需删)

- 以此类推,其他成员都有各自的feature-分支进行开发,大家开发完都 merge到release版本进行测试, 测试没有问题,release版本merge到master版本与dev版本, 对master分支打标签发布。

- 生产环境clone master(git clone XXXXXXXX);

- 测试环境clone master(git clone XXXXXXX)之后还要checkout release版本,分支切换到release版本进行, 运行play项目,测试没有问题切换到master版本

a. 选择appservice.ipr导入

b. 保证play依赖配置正确



c. 配置好Application

d. 配置好git所在目录

e. 克隆或创建分支(git clone 下来的是mater分支,需其余方法克隆dev等分支)

创建本地分支并推送远程库:使用f步骤方法1的方法,创建本地分支,右击项目, git-reposity-Branches, new branch, 输入分支名称, 再右击项目, git push会提交分支到远程库。

克隆远程分支:使用f步骤方法1的方法,克隆远程dev分支,右击项目, git-reposity-Branches, 弹出框



弹出框显示所有本地分支与远程分支(远程分支前缀【origin】是远程库名, git remote可查看远程库名)

选择checkout as new branch克隆到本地



f. 分支操作,

方法1:可使用intellij的可视化工具进行分支新建、切换等(但分支合并建议使用命令行加上–no-ff -m “merge描述”参数,否则log里看不到merge节点), 右击项目。



方法2:也可以直接在intellij的Termial里直接输入命令行进行分支操作。常用命令:

- 远程获取分支: git fetch && git checkout branchname

- 创建分支1的分支2:首先切换到分支1,git checkout branch1;然后创建并切换到分支2, git checkout -b branchname2;

- 分支查看: git branch;

- 分支切换: git checkout 分支名称;

- 分支状态: git status;

- 分支合并:先切换到需要被合并的分支1,git checkout branchname1;然后使得分支1合并上分支2的内容,git merge –no-ff -m “merge balabala” branchname2;

- 删除本地分支: git branch -d 分支名称;若需远程推送删除git push origin :标签名称;

- 删除远程分支: git push origin –delete 分支名称;

- 删除本地tag: git tag -d 标签名称;若需推送远程删除 git push origin :refs/tags/标签名称;

- 删除远程tag: git push origin –delete tag 标签名称;

- 比较两个分支间的差异: git diff dev release(比较dev, release分支)

- 查看操作log: git log或 git log –graph –pretty=oneline –abbrev-commit (推荐)

注意,两种方法merge的都是是本地库, 完需要推送到远程库。

5. 发布版本打标签

切换到master分支-》打标签 -》推送到远程仓库

git checkout master

git tag 查看所有标签

git show v1.0 查看v1.0标签详细信息

git tag v1.0(不推荐) 或 git tag -a v1.0 -m “version1.0”(推荐使用附注标签)创建标签v1.0

git push origin v1.0 标签推送到远程库

6. 版本管理

撤销文件修改

– 还没git add文件

git checkout – file (双横线一定要加,否则为切换版本命令)

– 已经add, 还没commit文件

git reset HEAD file

– 已经commit, 进行版本回退

版本回退

– 还没push到远程仓库

git reset –hard HEAD^ 或git reset –hard commitId(一定要加上–hard,双横杠)

– 已经push到远程仓库,删除远程仓库,重新上传。

一个branch还没完成,尚未add,但是需要切换到其余branch,如果不作处理,无法切换。因此要保存工作现场,是的工作区是干净的、

– git stash 保存工作现场

– git stash list 查看所有保存的工作现场

– git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

– 另一种方式是用git stash pop,恢复的同时把stash内容也删了:

查看区别

– 查看两个branch区别

git diff master dev

– 查看工作区和版本库里面最新版本的区别

git diff HEAD – readme.txt(双横杠)

7. 附录

附录a. 转载intellj 关于git的使用方法

附录b. GIt分支管理策略

附录c. 分支间、版本间、工作区与本地库等差异比较方法

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git intellij play