Git进阶
条评论一、tag相关
1-1.显示所有的tag
git tag
1-2. 查看某个版本系统的tag(过滤查看)
git tag -l 'v1.0.*'
1-3. 创建标签
git tag -a v1.0.0 -m '内容'
git tag v1.0.0
1-4.查看标签的详情
git show v1.0.0
1-5.推送标签
- 推送单个分支tag:
git push origin v1.0.0
- 推送本地所有tag:
git push origin --tags
1-6.删除标签
删除本地标签
git tag -d v1.0.0
删除远程标签
git push origin :refs/tags/v1.0.0
1-7.完整的打tag
git add *
git commit -m 'v1.0.0'
git tag v1.0.0
git push
git push origin v1.0.0
1-8.给指定的commit号加tag
打tag不必要在head上打,也可以在之前的版本上打tag,需要知道某个提交对象的校验和(通过git log获取,取校验和的前几位数字即可)
git tag -a v1.0.3 9fedrf -m 'my tag'
二、stash
git stash的内容与branch无关
2-1 git stash
保存当前工作进度,会把暂存区和工作区的改动保存起来,执行完这个命令后,执行git status会发现当前是一个干净的工作区,没有任何改动.
可以使用 git stash save 'message'
添加一些注释
PS:stash是本地的,不会通过git push 命令上传到git server上。
2-2 git stash list
显示保存进度的列表,也就是说 git stash可以多次执行。
2-3 git stash pop
- 恢复之前缓存的工作目录,且将缓存堆栈中的第一个stash删除
git stash apply
会将缓存区的第一个stash应用到工作目录,而不会删除相应的stash存储。
2-4 git stash drop [stash-id]
删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
2-5 git stash clear
删除所有存储的进度
2-6 查看制定的 stash diff
可以使用 git stash show stash@{0}查看stash的文件目录
2-7 暂存未跟踪或忽略的文件
git stash 默认不会缓存在工作目录中的新文件、被忽略的文件。
git stash 命令提供了参数用户缓存上面两种类型的文件,使用 -u
可以 stash untracked 的文件。使用 -a
可以 stash 所有的文件。
三、reset
soft
有时候,我们在本地 git add && git commit -m ‘’ 之后,我们想要撤回commit.
这个时候可以使用如下命令成功撤回了commit ,且本地文件会保留不会删除
git reset --soft HEAD^
hard
如果代码已经push到仓库,但是本地想要去回退到某个版本
git reset --hard HEAD^
— 回退到上一个版本
git reset --hard <commitID>
– 回退到制定commit版本
如果代码在本地修改了一部分,想要全部舍弃,回退到远程仓库的状态
git reset --hard origin/main
四、git log
-
git shortlog -sn
数据从大到小,查看一个项目的提交者和提交次数。 -
git log --stat
与 git log 相比,除了 author、Date、提交信息外,还可以看到提交的文件、文件行数。 -
git diff --shortstat "@{n days ago}"
统计 n 天前至现在文件改动数、代码行数添加数、代码行数删减数 -
git log --since=2022-01-01 --until=2022-12-31 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
统计一段时间内,添加和删除的代码行数
五、其它
-
git update-ref -d HEAD
重设第一个commit -
git pull --rebase A master:dev
fork了一个仓库(fork),本地仓库(origin),想要拉取 fork 仓库的最新提交:
git remote add fork ‘fork url’
然后执行上面命令,就可以拉取最新 master 分支的提交到本地分支 dev
本文标题:Git进阶
文章作者:六个周
发布时间:2021-08-08
最后更新:2022-12-20
原始链接:https://blog.liugezhou.online/018-git%20%E7%9B%B8%E5%85%B3/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!