git特殊命令
git config命令
配置文件
这些变量可以被存储在三个不同的位置:
/etc/gitconfig
文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’—system’ 给 git config,它将明确的读和写这个文件~/.gitconfig
文件 :具体到你的用户。你可以通过传递—global 选项使Git 读或写这个特定的文件- 位于git目录的config文件 (也就是
.git/config
) :无论当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config
中的值覆盖了在/etc/gitconfig
中的同一个值。
配置用户
带global参数为全局设置,当希望不同工程用不同的用户名时(比如:个人项目和公司项目),则移除–global参数,系统回优先使用当前配置
1 |
|
配置编辑器
- 配置编辑工具
- $
git config --global core.editor 工具路径
- $
- 配置合并工具
$ git config --global merge.tool 比较工具路径
- 配置比较工具
$ git config --global diff.tool 比较工具路径
检查配置
如果想检查你的设置,可以使用 git config --list
命令来列出Git可以在该处找到的所有的设置:
添加删除配置
- 添加
git config [–local|–global|–system] –add section.key value
(默认是添加在local
配置中)
- 删除
git config [–local|–global|–system] –unset section.key
git log命令
设置log命令
设置git log命令可方便查看日志,普通的gitlog指令不人性化
- 命令
1 |
|
- 定义别名
1 |
|
提交log的过滤
根据数量过滤
git log -3
根据日期过滤
- 可以用before或after参数,这两个参数接受多种日期格式
- `git log –after=”2014-7-1” ``
- ``git log –after=”yesterday” `
- 也可以接受时间概念,像”1 week ago”,或者是”yesterday”
git log --after="yesterday"
- 可以用before和after来组成时间区间,同since,until
git log --after="2014-7-1" --before="2014-7-4"
- 可以用before或after参数,这两个参数接受多种日期格式
根据提交者过滤
- –auther参数,传入一个正则表达式 可找到正则匹配的所有人,也可直接指定人名
git log --author="John/|Mary"
- –auther参数,传入一个正则表达式 可找到正则匹配的所有人,也可直接指定人名
根据提交内容过滤
- 使用grep参数可以查找参数指定的关键字过滤,使用-i参数还能忽略大小写
git log --grep="TEST"
- 使用grep参数可以查找参数指定的关键字过滤,使用-i参数还能忽略大小写
根据文件过滤
- 直接传入文件或文件及路径可直接过滤出想看的文件
git log -- foo.py bar.py
- 直接传入文件或文件及路径可直接过滤出想看的文件
根据改动内容过滤
- 通过-S””参数来判断引号中的内容过滤
- -G”” 参数根据正则匹配
git log -S"Hello, World!"
根据id范围过滤
git log <since>..<until>
- 当传入的是分支名称时,则表示展示分支独有的提交commit
git log <since>..<until>
滤过merge
- 如不需要merge的commit
git log --no-merges
- 如只看merge
git log --merges
- 如不需要merge的commit
查看某次提交
- 可通过git的GUI工具单独查看,通过输入
gitk
指令打开 - 如果在知道commitID的情况下课通过指令
git show commitID
查看
git rebase命令
git rebase
命令与git merge
命令一样都是将目标分支的代码合并到本地分支,但实现的流程与效果与merge指令不同
git merge
指令是直接将目标分支中的提交合并到本地分支中,当有冲突时,会把额外生成一次合并冲突的提交记录
git rebase
则是将本地分支中的提交记录保存为补丁(存储在.git/rebase目录),随后将目标分支的代码合并到本地分支中,最后再将暂存的分支重新添加提交到本地分支中
关于冲突
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用”git-add”命令去更新这些内容的索引(index), 然后,无需执行 git-commit,只要执行:
$ git rebase --continue
在任何时候,你可以用–abort参数来终止rebase的行动,并且”mywork” 分支会回到rebase开始前的状态。
$ git rebase --abort
git特殊命令
https://andrewjiao.github.io/2018/12/24/git命令提升/