[GIT] playframework+intellij + git使用流程
2016-05-19 17:26
309 查看
学习小结,如有错误,欢迎指正。
- 远程到版本库目录为helloworld
- .gitignore在helloworld目录下
a. 在study目录下创建README.txt(不是必须);
b. 创建play!项目并转换成intelij项目, 项目名为appservice;
转换成intellij项目
c. 创建.gitignore
在需要远程到仓库的路径/study/helloworld/下创建.gitingore
假设配置【不提交到远程仓库文件】:appservice.ipr, appservice.iml, appserver.iws
则配置路径为.gitignnore所在目录出发的相应路径下,即
/appservice/appservice.ipr
/appservice/appservice.ipr
/appservice/appservice.iws
b. ls -ah查看是否生成.git
c.关联本地与远程仓库
d. 第一次推送
如果d步骤失败,很有可能是尚未把工作区提交到本地仓库,则执行以下步骤
git status
git add fileName
git commit -m “提交描述”
git push origin master
完成以上步骤后, 确认远程仓库是否正常提交。
- 版本库主要有两种类型分支:主要分支: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的都是是本地库, 完需要推送到远程库。
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 标签推送到远程库
– 还没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(双横杠)
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. 初始化gitgit 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. 分支间、版本间、工作区与本地库等差异比较方法
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- 解决play out of memory的问题
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git eclipse 插件的安装
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子
- linux系统安装git及git常用命令