[git config相关](#git config相关)
git config相关
#删除全局设置
git config --global --unset <entry-name>
#如果您希望 Git 记住您在此计算机上的凭据,您可以使用以下方法缓存您的凭据:
git config --global credential.helper wincred //Windows
git config --global credential.helper osxkeychain //Mac
#如果您希望在拉取时将远程跟踪分支的修剪设置为默认行为,您可以使用以下配置选项:
git config --global fetch.prune true
#创建命令别名
git config --global alias.lol "log --oneline --graph --decorate --all"
# 清理分支命令别名设置
git config alias.dlb '!git checkout <DEFAULT-BRANCH> && git pull --prune && git branch --merged | grep -v "\*" | xargs -n 1 git branch -d'
#在推送相关提交时自动推送tag,否则需要指定推送标签`git push --tags`
git config push.followTags true
#配置一个全局的.gitignore_global文件为每一个本地仓库使用。
#前提是在根目录下创建这样一个公共文件
git config --global core.excludesfile ~/.gitignore_global //Mac
git config --global core.excludesfile %USERPROFILE%\.gitignore_global //Windows
#配置彩色的 git 输出
git config color.ui true
#显示历史记录时,每个提交的信息只显示一行
git config format.pretty oneline
# 不再将文件的权限变化视作改动
git config core.fileMode false
git log 相关
# 某一个人的提交记录
git log --author=bob
#一个压缩后的每一条提交记录只占一行的输出
git log --pretty=oneline
#通过 ASCII 艺术的树形结构来展示所有的分支, 每个分支都标示了他的名字和标签
git log --graph --oneline --decorate --all
#看看哪些文件改变了
git log --name-status
#在 commit log 中查找相关内容,通过 grep 查找,given-text:所需要查找的字段
git log --all --grep='<given-text>'
#在 commit log 中显示 GPG 签名
git log --show-signature
git diff 相关
#输出工作区和暂存区的 different (不同)。
git diff
# 输出暂存区和本地最近的版本 (commit) 的 different (不同)。
git diff --staged
# 输出工作区、暂存区 和本地最近的版本 (commit) 的 different (不同)。
git diff HEAD
git diff --color-words
#git diff还允许您通过简单地键入以下内容来比较分支、提交和标签:
# 展示本地仓库中任意两个 commit 之间的文件变动:
git diff <REF-1> <REF-2>
git diff main slow-down
git diff origin/main main
git diff 2710 b745
#展示工作区的冲突文件列表
git diff --name-only --diff-filter=U
实用小帖士
- 内建的图形化 git:
gitk
- 交互式添加文件到暂存区:
git add -i
- 把某一个分支导出成一个文件:
git bundle create <file> <branch-name>
- 查看某段代码是谁写的:
git blame <file-name>
- 删除已经合并到 master 的分支:
git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d
- clone 最新一次提交:
git clone --depth=1 https://github.com/user/repo.git
- clone 下来指定的单一分支:
git clone -b <branch-name> --single-branch https://github.com/user/repo.git
- 修改作者名:
git commit --amend --author='Author Name <email@address.com>'
- 快速切换到上一个分支
git checkout -
- 从远程分支中创建并切换到本地分支:
git checkout -b <branch-name> origin/<branch-name>
- 查看远程分支和本地分支的对应关系:
git remote show origin
- 删除远程分支本地也想删除:
git remote prune origin
- 查看任意分支某一文件的内容:
git show <branch-name>:<file-name>
- 查看两个星期内的改动:
git whatchanged --since='2 weeks ago'