首页 > 代码库 > GIT常用命令

GIT常用命令

GIT的官方文档       图形化工具gitk

1、GIT基础设定
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ git config --list          查看配置记录
也可以进入工作根目录,运行git config -e,这样就只会对该工作区有效。
链接一     链接二

2、常用命令
git init             本地创建版本库
git add "test.txt"   添加指定文件到版本库中

git add .            添加所有文件到版本库中
git clean -f                       清除Untracked files
git commit -m "wrote a test file"           将修改的文件提交到仓库,-m参数用于设置此次提交的注释内容
git commit -a -m "wrote a test file"     如果有多个文件需要提交,则必须使用-a参数

git status           查看仓库的当前状态,显示那些文件已修改,那些文件需要提交

git log              查看版本提交记录   其他参数
git log --stat       查看提交记录简要的增改行数统计
git log --pretty=oneline      只显示提交记录的commit id(版本号)和注释内容
git log --pretty=oneline --abbrev-commit

git reset --hard HEAD^        把当前版本回退到上一个版本
git reset --hard HEAD~100    
git reset --hard commit_id    回退到指定的版本号

git reflog                    查看命令执行记录
git diff HEAD -- 文件名        查看工作区和版本库里面最新版本的区别

git checkout -- readme.txt    把文件在工作区的修改全部撤销,回退到版本库或暂存区的最新版本
git reset HEAD readme.txt     把暂存区的修改回退到工作区

git rm readme.txt               从版本库删除文件
git show 某次的提交哈希值  文件名       查看某个文件某次的修改记录

git remote add origin git@github.com:username/learngit.git              将本地git库与远程库关联,origin是远程库的名称(可以任意定义)

git push -u origin master       把本地库中master分支的所有内容推送到远程库,-u参数是將本地库与远程库关联,平时提交不需要该参数

ssh-keygen -t rsa -C "youremail@example.com"          创建SSH KEY,每个客户端创建一个KEY,提交时github可以准确识别出提交者


历史查看 :

查看提交历史(全部):                                 $ git log
查看提交历史,并显示统计信息:              $ git log --stat
查看提交历史并查看差异:                          $ git log -p
查看最近2次提交历史并查看差异:            $ git log -p -2
查看最近2周内提交历史:                            $ git log --since=2.weeks
查看某个时刻之后的提交历史:                  $ git log --since="2008-09-14"
查看某个时刻以前的提交历史:                  $ git log --until="2008-09-14"
查看某个作者的提交历史:                          $ git log --author="stupid"

查看提交历史,并单行显示:                       $ git log --pretty=oneline

查看提交历史,并格式化显示:                     $ git log --pretty=format:"%h - %an, %ar : %s"

%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字

%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%cr 提交日期,按多久以前的方式显示
%s 提交说明

【日志参数】

-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和format(后跟指定格式)。


工作区、版本库、暂存区原理图

分支
git checkout -b dev           创建并切换到dev分支
git checkout master           切换到master分支
git branch                    查看当前所有的分支,当前分支前面会标一个*号
git branch dev                创建dev分支
git merge dev                                          合并dev分支到master主分支
git merge --no-ff -m "注释内容" dev            合并dev分支时生成一个新的commit,从分支历史上就可以看出分支信息。
注意上面的--no-ff参数,表示禁用“Fast forward”
 
git branch -d dev             删除dev分支


标签
git tag v1.0                  切换到需要打标签的分支上,创建v1.0标签

git tag                       查看所有标签
git tag v0.9  commit_id       在知道版本号打标签
git show v0.9                 查看标签信息
git tag -a v0.1 -m "version 0.1 released" commit_id     用-a指定标签名,-m指定说明文字
git tag -d v0.1               删除标签
git push origin v1.0          推送标签到远程库
git push origin --tags        一次性推送全部尚未推送到远程的本地标签


删除本地未提交的修改

已提交到暂存区:

git reset --hard         取消缓存已缓存的内容

git clean -xdf           从磁盘上删除所有未提交到暂存区的文件


未提交到暂存区:

git checkout .           撤销所有工作区文件的修改
git checkout filename    撤销指定工作区文件的修改

git checkout *.java      撤销工作区所有java文件的修改
git clean -xdf

GIT常用命令