git tag怎么使用_盘点Git的那些冷门玩法

点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达!

其实也不是很冷门,只是要实现以下需求时,笔者一时间竟然想不起来,还要借助搜索引擎,于是记录一下,算是 备忘。希望对大家也有帮助。

强制覆盖master分支

最近对 Spring Cloud YES[1] 进行了升级,由于改动太多了,导致了大量的冲突,合并比较费劲。于是想用开发分支强制覆盖master分支,以下是步骤。

解决方案

1 切换到develop分支下,并保证本地已经同步了远端develop的最新代码。

git checkout developgit pull

2 把本地的develop分支强制(-f)推送到远端master。

git push origin develop:master -f

3 切换到旧分支master。

git checkout master

4 下载远程仓库最新内容,不做合并。

git fetch --all

5 把HEAD指向master最新版本。

git reset --hard origin/master

参考文档

Git强制覆盖master分支[2]

修改提交人信息

近日用公司电脑提交代码到个人Git仓库(是的,阿里不禁GitHub,也不禁止用公司电脑提交私人仓库哦,只要不涉及公司商业机密即可,是不是更有来阿里的欲望了呢?如需内推,前往:阿里内推 查看详情),忘记修改提交人信息了……于是导致提交信息都是个人公司邮箱等信息……

感觉这种信息比较敏感,所以想把提交记录修改掉。

解决方案

以下是操作步骤,记录一下,防止未来有类似需求时又到处搜索。

1 批量修改本地提交记录:

git filter-branch -f --env-filter \    "GIT_AUTHOR_NAME='要改成的提交人用户名'; GIT_AUTHOR_EMAIL='要改成的提交人邮箱'; \    GIT_COMMITTER_NAME='要修改的提交人用户名'; GIT_COMMITTER_EMAIL='要修改的提交人邮箱';"

2 push

git push -u -f

搞定!

根本

要想从根本上解决问题,应该养成习惯,在clone完项目后,就立马为每个仓库设置提交人信息:

git config user.name "itmuch"git config user.email "eacdy0000@126.com"

参考文档

•git 修改已提交的某一次的邮箱和用户信息[3]•git修改提交作者和邮箱[4]

删除tag

前几天要发布一个私人小项目,然而手误,打错标签了,想要删除。由于这种场景比较少,一时间竟然忘记怎么玩了……大写的尴尬。记录下:

解决方案

# 本地删除 git tag -d [tag名称]# 远程删除git push origin :refs/tags/[tag名称]

示例:

git tag -d v1.0git push origin :refs/tags/v0.9

参考文档

操作标签[5]

git status 乱码

笔者使用 Iterm2 ,当执行 git status 如果文件名带有中文,会出现乱码,如下所示:

On branch masterYour branch is up to date with 'origin/master'.Changes not staged for commit:  (use "git add ..." to update what will be committed)  (use "git checkout -- ..." to discard changes in working directory)    modified:   "\345\276\205\345\217\221\345\270\203/git status\344\271\261\347\240\201.md"

解决方案

git config --global core.quotepath false

此时,再次执行 git status 就会正常显示啦:

On branch masterYour branch is up to date with 'origin/master'.Changes not staged for commit:  (use "git add ..." to update what will be committed)  (use "git checkout -- ..." to discard changes in working directory)    modified:   待发布/git status乱码.mdno changes added to commit (use "git add" and/or "git commit -a")

参考文档

当git遇上中文乱码[6] ,里面还有其他乱码场景的解决方案。

合并两个不相关的Git仓库

17年总结的:合并两个不相关的Git仓库

使用GitLab Mirrors同步Git仓库

使用GitLab Mirrors同步Git仓库[7]

使用post receive hook同步Git仓库

使用post receive hook同步Git仓库[8]

干货分享

最近将个人学习笔记整理成册,使用PDF分享。关注我,回复如下代码,即可获得百度盘地址,无套路领取!

•001:《Java并发与高并发解决方案》学习笔记;•002:《深入JVM内核——原理、诊断与优化》学习笔记;•003:《Java面试宝典》•004:《Docker开源书》•005:《Kubernetes开源书》•006:《DDD速成(领域驱动设计速成)》

近期热文

•6到飞起的Java诊断工具Arthas•Spring Cloud学习资源一网打尽!Awesome Spring Cloud v1.0•干货|Spring Cloud Bus 消息总线介绍•面试官问我,SpringApplication.run做了哪些事?•分享:个人是怎么学习新知识的•MySQL数据库“十宗罪”(十大经典错误案例)•干货|Spring Cloud Stream 体系及原理介绍

关注我

7ec9c1c8d508c2828186b93cbd7b61dc.png

References

[1] Spring Cloud YES: https://github.com/eacdy/spring-cloud-yes[2] Git强制覆盖master分支: https://www.cnblogs.com/king-le0/p/10097583.html[3] git 修改已提交的某一次的邮箱和用户信息: https://segmentfault.com/q/1010000006999861[4] git修改提交作者和邮箱: https://blog.csdn.net/diu_brother/article/details/51982993[5] 操作标签: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001376951885068a0ac7d81c3a64912b35a59b58a1d926b000[6] 当git遇上中文乱码: https://www.cnblogs.com/jason0529/p/8962842.html[7] 使用GitLab Mirrors同步Git仓库: http://www.itmuch.com/work/git-repo-sync-with-gitlab-mirrors/[8] 使用post receive hook同步Git仓库: http://www.itmuch.com/work/git-repo-sync-with-post-receive/

点"在看"是一种美德^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值