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 --amend amend 将用来修复上次提交,例如上次提交如果忘记了某些文件,可以使用此命令修复,git将会把amend的文件与之前的文件记录为一次提交

  • git reset HEAD 文件名.txt 取消暂存

  • git checkout -- 文件名 撤销对文件的修改, 比较危险,因为本地的修改可能会被从远端来的文件覆盖

  • git remote -v 查看配置的远端仓库信息, -v显示git保存的简写和url

  • git 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基础的更多相关文章

  1. (三)Java工程化--Git起步

    GIT学习参考:https://git-scm.com/book/zh/v2 版本控制 版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复. 三类版本控制系统 本地版本控制系统 RCS : 本 ...

  2. (一)Java工程化--Maven基础

    Maven 读作['mevən] 翻译成中文是"内行,专家" Maven是什么 包依赖的前世今生: 原始的jar包引用--> ant --> maven. 是一种项目管 ...

  3. 20145221 《Java程序设计》实验报告四:Android开发基础

    20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...

  4. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  5. 2018-2019-2 20175105王鑫浩《Java程序设计》实验四 《Android开发基础》实验报告

    实验四 <Android开发基础> 实验报告封面 课程:Java程序设计 班级:1751班 姓名:王鑫浩 学号:20175105 指导教师:娄嘉鹏 实验日期:2019年5月17日 实验时间 ...

  6. 2017-2018-2 20165237 实验四《Android开发基础》实验报告

    2017-2018-2 20165237 实验四<Android开发基础>实验报告 实验报告表头: No.1 实验要求: Android程序设计-1 实验要求: 参考<Java和An ...

  7. 2017-2018-2 20165236 实验四《Android开发基础》实验报告

    2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计       班级:1652班       姓名:郭金涛     ...

  8. 2017-2018-2 20165215 实验四《Android开发基础》实验报告

    2017-2018-2 20165215 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教 ...

  9. 2017-2018-2 20165306 实验四《Android开发基础》实验报告

    实验四<Android开发基础>实验报告 实验报告封面 实验内容 Android程序设计-1 实验要求: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java ...

随机推荐

  1. C# 将普通字符串转换为二进制字符串

    1.因为项目的需要,在向数据库中添加人的信息时,必须要求是英文或数字,所以想了个办法,将我们人能看懂的字符串编译成二进制字符串转入就行了. 具体的逻辑实现代码如下:

  2. 基于HTML5 的互联网+地铁行业

    前言 近几年,互联网与交通运输的融合,改变了交易模式,影响着运输组织和经营方式,改变了运输主体的市场结构.模糊了运营与非营运的界限,也更好的实现了交通资源的集约共享,同时使得更多依靠外力和企业推动交通 ...

  3. __init__和__new__的区别

    根据官方文档:   __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值. __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法.  也 ...

  4. 【学习总结】GirlsInAI ML-diary day-10-if条件执行

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day10 认识if条件执行 一般条件执行 分支执行 链式条件执行 嵌套条件执行 1-if一般条件执行 格式:如果(满足这个 ...

  5. 其他综合-使用Xshell远程连接管理Linux实践

    使用Xshell远程连接管理Linux实践 1. Xshell整体优化 1)点击 工具 ,然后选择 选项 2)在 常规 选项中,下面的存放路径根据个人爱好修改(可选默认) 3)在 更新 选项中,将 √ ...

  6. python爬取中国天气网站数据并对其进行数据可视化

    网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气   对爬取的数据进行可视化处理 按温度对城市进行排 ...

  7. codeforces483B

    Friends and Presents CodeForces - 483B You have two friends. You want to present each of them severa ...

  8. bzoj3277-串

    Code #include<cstdio> #include<iostream> #include<cmath> #include<cstring> # ...

  9. windows 8.1 cmd命名提示符全屏

    在 C:\Users\wy\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools 目录下,右键命令提示符-属性中修改:

  10. mysql 基本语句

    求知若渴 虚心若愚   博客园 首页 新随笔 联系 管理 随笔-391  文章-0  评论-7  mysql sql常用语句大全   SQL执行一次INSERT INTO查询,插入多行记录 inser ...