Table of contents
Open Table of contents
1. Git基本设置
git config --global user.name rocky
git config --global user.email [email protected]
2. 常用别名设置
git config --global alias.co checkout
git config --global alias.ci "commit -m"
git config --global alias.st status
git config --global alias.br branch
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
//移除指定别名
git config --global --unset-all alias.hist
//全局配置
编辑.gitconfig文件,[alias]项即可
3. 历史
//查看所有的提交历史
git log
//以单行格式查看提交历史
git log --pretty=oneline
可选参数:
--max-count=2 //限制展示行数
--since='5 minutes ago' //只显示5分钟前到现在提交的
--until='5 minutes ago' //只显示5分钟前以及之前提交的
--author=rockycheong //只显示特定提交者的记录
//查看日志推荐终极格式
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
解释:
--pretty="..." 定义输出的格式
%h 是提交 hash 的缩写
%d 是提交的装饰(如分支头或标签)
%ad 是创作日期
%s 是注释
%an 是作者姓名
--graph 使用 ASCII 图形布局显示提交树
--date=short 保留日期格式更好且更短
4. Commit
//修改最近的一次提交comment
git commit --amend -m "Add an author comment"
//清空commit信息
git update-ref -d HEAD
//展示两个commit之间的不同
git diff <commit-id> <commit-id>
//展示暂存区和最近的一次commit之间的不同
git diff --cached
//展示暂存区、工作区和最近一次commit的不同
git diff HEAD
5. 版本切换
//切换到某个提交
git checkout <hash>
//撤销本地更改[还原没有被add的工作目录文件内容]
git checkout <指定文件名称>
//撤销暂存的更改[重置 HEAD 中暂存区的内容],这个命令不会清理工作目录文件内容
git reset HEAD <指定文件名称>
//撤销提交的更改,通过新提交的方式还原最新一次的提交
git revert HEAD --no-edit
//从分支移除提交
//重置到某一个commit, 提交会被抹去,默认就是。
git reset --hard <commit-id>
参数:
--mixed:会重置提交和暂存区的内容,工作目录的内容不会重置
--hard:会重置提交和暂存区以及工作目录的内容
--soft:只会重置提交内容,暂存区和工作目录的内容不会被重置
7. Tag
//给当前分支打tag
git tag <tag-name>
//给指定commit id打标签
git tag -a <tag-name> -m "v1.0 发布(描述)" <commit-id>
//删除指定tag
git tag -d <tag-name>
//推送标签到远程
git push origin <tag-name>
//推送所有标签
git push origin --tags
//删除远程tag
git push origin --delete tag <tagname>
8.查看信息
//通过hash值查看内容类型
git cat-file -t <hash>
//通过hash值查看文件或者目录等内容
git cat-file -p <hash>
//展示所有被追踪的文件
git ls-files -t
//展示所有未被追踪的文件
git ls-files --others
//展示所有忽略的文件
git ls-files --others -i --exclude-standard
//查看所有分支
git branch -a
//删除本地分支
git branch -d
注意: cat-file命令可以重命名为dump,表示转储容易记
9. 变基
//将master分支rebase到当前分支,当前分支会重写提交历史,线性包含master的提交
git rebase master
注意:
如果和别人协同开发,最好不要使用变基,只有个人的局部提交可以使用变基让提交变得清晰
10. File
//从暂存区删除指定文件 并且磁盘中仍然存在
git rm --cached README
// 从暂存区和磁盘中全部删除文件
git rm README
11. 远程
//查看远程仓库信息
git remote show origin
12. Stash
//隐藏工作目录的修改但是不提交
git stash
//隐藏工作目录的修改但是不提交 (包括未被追踪的文件)
git stash -u
//展示所有的stash
git stash list
//恢复某个stash的状态
git stash apply <stash@{n}>
//回到最后一个stash,并且删除这个stash
git stash pop
//删除所有的stash
git stash clear
//从stash 中拿出某个文件的修改
git checkout <stash@{n}> -- <file-path>