GIT学习参考:https://git-scm.com/book/zh/v2java
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
克隆远端仓库并重命名git
> 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保存的简写和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, 即便用git的一套规范; 能够参考google的gitflow.github
能够在CI使用, 自动发布,与jenkins集成.shell
经过本次学习咱们基本就能够应对平时的须要了.做为工程化的一部分,git就先了解这么多(后面若是有时间的话再整理下git的更多知识), 下一步将学习jenkins.数据库