Git常用功能总结
Git基础
用户名和邮箱配置
$ git config [--global] user.name = <username>
$ git config [--global] user.email = <useremail>
- 如果省略
--global
选项,配置只对当前仓库生效 - 否则就对当前用户的所有仓库有效
- 就近原则,本地配置比全局配置的优先级更高
获取帮助
获取详细帮助信息
$ git help <cmd>
$ git <cmd> --help
$ man git-<cmd>
获取简略帮助信息
将上面的三个命令的help
替换成h
即可获得简略信息
获取仓库的两种方式
初始化一个目录为一个新的仓库
-
在某一目录执行以下命令,便可将该目录转变成一个Git仓库
$ git init
-
命令执行之后会生成一个
.git
文件夹
克隆一个已经存在的仓库
-
使用以下命令克隆一个仓库
$ git clone <url> [<name>]
-
其中
<url>
为需要克隆的仓库的地址,<name>
是可选的,即克隆到本地的仓库的名字,如果没有这一选项,就在本地创建一个和克隆处名字一样的本地库
记录每次更新到Git仓库
查看文件状态
$ git status
暂存新建或者是已修改的文件
$ git add <filename>/<dirname>
- 其后也可以是一个目录
- 如果是目录,就递归地将目录中的已修改的文件暂存到暂存区
状态简览
-
使用
git status
命令的状态结果可能略显繁琐 -
我们可以使用
--short
或者是-s
选项,使得输出简化$ git status -s
忽略文件.gitignore
可以在仓库根目录之下创建一个.gitionore
文件,在其中指定不进行版本管理的文件
文件差异对比
工作区和暂存区的文件差异的对比
$ git diff [<filename>]
- 其中
<filename>
是可选的,如果没有,就会输出所有的文件的差异
本地库和暂存区的文件差异对比
$ git diff --cached/--staged [<filename>]
工作区和本地库的最新版的文件差异对比
$ git diff HEAD -- [<filename>]
提交更新
-
在编辑器中输入提交信息
$ git commit
- 该命令会将暂存区中的文件一次性全部提交到本地库
-
使用
-m
选项携带提交信息$ git commit -m "<msg>"
-
跳过使用暂存区域
$ git commit -a -m "<msg>"
- 该命令会将**已跟踪**的文件全部暂存然后一次性提交
- 对于**未跟踪**文件,不会进行暂存和提交
移除文件
-
将三个区中的文件进行移除
$ git rm <filename>
-
保留工作区中的文件
$ git rm --cached <filename>
-
工作区和本地库版本不一致的文件,需要使用
-f
选项进行强制删除 -
对于未追踪的文件,不能使用该命令,实际上直接使用
rm
命令删除就行了
移动或者重命名文件
$ git mv <fromfile> <tofile>
这相当于
$ mv <from_file> <to_file>
$ git rm <from_file>
$ git add <to_file>
查看提交历史
git log
-
常用的选项
选项 说明 -p 按补丁格式显示每个提交引入的差异 -n 仅输出最近的n条提交记录 –stat 显示提交的文件修改的统计信息 –shortstat 只显示–stat中最后的行数添加删除统计 –name-only 仅在提交信息后显示已修改的文件清单 –name-status 显示新增、修改和删除的文件清单 –abbrev-commit 仅显示SHA-1校验和的前几个字符 –relative-date 使用较短的相对时间而不是完整的日期格式显示日期 –graph 在日志旁使用ASCII图形显示分支与合并历史 –pretty 自定义日志的输出显示格式 –oneline –pretty=oneline --abbrev-commit合用的简写 -
限制日志输出长度的常用选项
选项 说明 –author 只显示指定作者修改的提交记录 –grep 只显示提交说明中包含–grep选项指定的关键字的提交记录 -num 只显示最后的num个提交记录