(四)Java工程化--Git基础
GIT学习参考:https://git-scm.com/book/zh/v2
常见命令
git init初始化项目git add *.java添加文件到git版本控制(.java后缀的全部文件)
Git 有三种状态, commited(已提交),modified(已修改),staged(已暂存);已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
git status -s当前状态,一般有进行下一步操作的提示信息-s输出简洁信息git commint -m '提交描述信息'提交到本地仓库git clone https://github.com/xuelingxiao/java-knowledge-structure knstuct克隆远端仓库并重命名> GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它.
git diff查看哪些修改了还没有暂存;查看哪些修改暂存了准备下次提交;git diff --cache查看暂存区git commit -a跳过add,将跟踪文件暂存并一起提交git rm filename.txt将文件移除跟踪状态git rm --cached filename从暂存区移除文件,将保留工作区文件git mv filefrom fileto移动文件git log查看提交历史git log -p -2-p显示每次提交的内容差异,-2显示最近两次提交,常用的还有git log --graph,git log --pretty=oneline[short,full,fuller,format],git log -Sfunctionname,git log --grep 关键字其他的请参阅帮助git commit --amendamend 将用来修复上次提交,例如上次提交如果忘记了某些文件,可以使用此命令修复,git将会把amend的文件与之前的文件记录为一次提交git reset HEAD 文件名.txt取消暂存git checkout -- 文件名撤销对文件的修改, 比较危险,因为本地的修改可能会被从远端来的文件覆盖git remote -v查看配置的远端仓库信息, -v显示git保存的简写和urlgit remote add knstuct https://github.com/https://github.com/xuelingxiao/java-knowledge-structure添加远端仓库配置git fetch knstuct获取仓库,即镜像同步到本地git pull knstuct拉取远端分支到本地,并合并,fetch不会合并git push -f remote-name branch-name推送到远端, -f将回滚版本(强制推送)git remote show origin查看一个远端分支的更多信息git remote rename oldname newname远端分支重命名git remote rm branch-name移除远端分支git tag列出标签git tag -l 'v1.8.5*'只列出v1.8.5系列的标签git tag -a v1.1 -m 'v1.1版本的标签'创建一个附注标签(git标签分两类:轻量标签和附注标签,附注标签存储了git数据库中的一个完整对象,可以被检验,包含了打标签人的信息)git tag v1.2 -lw打轻量标签git push origin v1.1推送标签到远端,这样可以共享标签git checkout -b brahchname tagname检出标签,实际是将标签版本检出到工作区 -b只是第一次checkout使用别名设置, 参考示例如下
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.unstage 'reset HEAD --'
--上面命令运行后,下面两条语句等价
$ git unstage fileA
$ git reset HEAD -- fileA
--如果是外部命令, 可以在命令前加!
$ git config --global alias.visual '!gitk'
git merge branch master合并分支git rebase master变基,掌握不住的话要少用
Git-Flow
规划团队如何使用git, 即使用git的一套规范; 可以参考google的gitflow.
git hooks
可以在CI使用, 自动发布,与jenkins集成.
通过本次学习我们基本就可以应对平时的需要了.作为工程化的一部分,git就先了解这么多(后面如果有时间的话再整理下git的更多知识), 下一步将学习jenkins.
(四)Java工程化--Git基础的更多相关文章
- (三)Java工程化--Git起步
GIT学习参考:https://git-scm.com/book/zh/v2 版本控制 版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复. 三类版本控制系统 本地版本控制系统 RCS : 本 ...
- (一)Java工程化--Maven基础
Maven 读作['mevən] 翻译成中文是"内行,专家" Maven是什么 包依赖的前世今生: 原始的jar包引用--> ant --> maven. 是一种项目管 ...
- 20145221 《Java程序设计》实验报告四:Android开发基础
20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...
- 超详细的Java面试题总结(四 )之JavaWeb基础知识总结
系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...
- 2018-2019-2 20175105王鑫浩《Java程序设计》实验四 《Android开发基础》实验报告
实验四 <Android开发基础> 实验报告封面 课程:Java程序设计 班级:1751班 姓名:王鑫浩 学号:20175105 指导教师:娄嘉鹏 实验日期:2019年5月17日 实验时间 ...
- 2017-2018-2 20165237 实验四《Android开发基础》实验报告
2017-2018-2 20165237 实验四<Android开发基础>实验报告 实验报告表头: No.1 实验要求: Android程序设计-1 实验要求: 参考<Java和An ...
- 2017-2018-2 20165236 实验四《Android开发基础》实验报告
2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:郭金涛 ...
- 2017-2018-2 20165215 实验四《Android开发基础》实验报告
2017-2018-2 20165215 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教 ...
- 2017-2018-2 20165306 实验四《Android开发基础》实验报告
实验四<Android开发基础>实验报告 实验报告封面 实验内容 Android程序设计-1 实验要求: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java ...
随机推荐
- day 1总结-python基础
第一天的复习 目录:1.编程语言的区分 2.python的优缺点 3.python环境的搭建,版本之间的大致区别 4.代码的注释规则 5.变量 6.常量 7.基本程序交互 8.基础数据类型 9.基础循 ...
- Arduino内部网页代理,网页穿透,公网访问Arduino内部网页
#include <ESP8266WiFi.h> const char* id = "id"; //http://www.mcunode.com/proxy/ ...
- 如何判断app的页面是原生的还是H5的webview页面
1.看布局边界(在手机侧观察) 开发者选项->显示布局边界,页面元素很多的情况下布局是一整块的是h5的,布局密密麻麻的是原生控件.页面有布局的是原生的,否则为h5页面.(仅针对安卓手机试用)如下 ...
- eclipse换工作空间站快捷键失效解决
1.找到你可以用快捷键的eclipse的空间所在目录.2.复制.metadata文件.3.找到不可用快捷键的空间目录,把之前复制的文件夹覆盖到现在的.4.重启eclipse.
- python 中内存释放与函数传递numpy数组问题
numpy.array 作为参数传入函数中时,是作为引用进去的,函数内部对这个数组的修改会直接修改原始数据.在函数中需要暂时修改数据,不对原始数据造成影响的话,需要用 np.copy() 先拷贝一份, ...
- Shiro学习(一)——Shiro简介
Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大 ...
- 面试3——java集合类总结(Set)
Set 集合 和List一样,继承Collection接口,不同的是Set中不能包含重复的元素,无序,并且最多只能允许一个null值.Set常见的实现类有:HashSet.TreeSet和Linked ...
- openstack搭建之-基础服务配置(7)
基础环境准备,所需服务器及说明 172.16.2.51 base.test.com 基础服务节点 172.16.2.52 ctrl.test.com 控制节点 172.16.2.53 ...
- OpenStack-Glance(3)
一. Glance功能 传统 IT 环境下,安装一个系统是要么从CD安装,要么用 Ghost 等克隆工具恢复.有如下几个问题: 如果要安装的系统多了效率就很低 时间长,工作量大 安装完还要进行手工配置 ...
- Flask WTForms的使用和源码分析 —— (7)
Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.还有其它一些功能:CSRF保护, 文件上传等.安装方法: pip3 ...