Skip to content

测试文章2

Updated: at 07:59

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>