每天3分钟玩转Git—— 09 – 漏提交与打tag

2020年2月21日 评论 435 views 1475字阅读4分55秒

09 - 漏提交与打tag

 提交漏文件、发布release版本怎么搞?——编程三分钟

恭喜你!!当你学到这一篇的时候,可以非常有底气的说自己是一个熟悉Git的使用和底层原理的Git高手了!开发协作也完全没有了问题。了解了各个步骤操作的后果再也不担心使用不成熟的可视化工具造成的可怕后果了。
本篇和下一篇给大家带来Git的常用技巧,让你更加的得心应手。让我们开始吧!

漏提交

有时候会碰到我们已经commit了但是又漏掉部分属于这个功能的文件没有一起提交,如果我们想把这些文件和刚刚的commit合并在一起,这种时候应该怎么做呢?

上图含义:

  • git log查看最后一次提交日志,其中一个被修改文件叫time.txt

  • git status查看到暂存区有两个新文件,他们是lose_file.txt和test_amend.txt

  • 使用git commit --amend --no-edit合并到上一个提交里,如果不加--no-edit参数的话,会提示你来修改commit提示信息(这个命令也可以用在重复编辑commit message)。

  • git log查看日志,合并提交成功!注意commit id发生了变化,但是其实只看得到一个提交,此处只是为了便于系统识别和记录恢复。

打tag

打过游戏的朋友都知道存档的概念,标签就是一个类似于存档的东西,他会把当前的提交位置存档,然后用版本号来命名这个存档,常常用于测试和发布版本。可以增加与测试小姐姐接触的机会,何乐而不为呢?

创建一个tag

我们只需要切换到想打标签的分支,然后直接打就可以了。我们来试试~

    切换到想打tag的分支

  • 创建名为release_v1.0带有信息release v1.0tag

  • 创建的不带有tag的提交信息的release_v1.1

  • 我们一般把tag名以版本号来命名,比如:release_v1.0 这样。

``

  • git tag查看tag列表,可以看到我们刚刚打的两个tag

  • git push --tags推送本地全部tag到远程

当然了!也可以推送单个tag

删除操作也非常简单,我们来删除一个tag试试

  • 本地删除名为release_v1.0tag

  • 远程删除名为release_v1.0tag

给历史提交打tag

先看看当前的log

比方说要对[*]update time to 18:51这次提交打标签,它对应的commit id是856a740,只需要敲入命令:

成功打上,这又学了git log的新参数--abbrev-commit,表示只展示前半部分commit id,比较简洁。

小结

1. git log的新参数

只展示文件名和状态(增删改),不展示详细提交说明
git log --name-status   
把历史记录用一行显示 
git log --pretty=oneline -1 
只展示前半部分commit id
git log --abbrev-commit

2. git commit --amend 加--no-edit参数,代表不编辑commit message的同时合并当前修改到最后一个commit

git commit --amend --no-edit
  1. 标签操作
git tag                      # 显示已存在的tag
git tag -a v2.0 -m 'xxx'     # 增加v2.0的taggit show v2.0                
# 显示v2.0的日志及详细内容git log v2.0                 # 显示v2.0的日志
git push --tags              # 把所有tag推送到远程仓库
git tag -d tag_name          # 本地删除名为tag_name的tag
# 远程删除名为tag_name的tag
git push origin :refs/tags/tag_name
weinxin
公众号
在号内与我交流,回复【资源】获取技术大礼包
小熊