Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >盘点Git的那些冷门玩法

盘点Git的那些冷门玩法

作者头像
用户1516716
发布于 2019-07-10 07:32:30
发布于 2019-07-10 07:32:30
65600
代码可运行
举报
文章被收录于专栏:A周立SpringCloudA周立SpringCloud
运行总次数:0
代码可运行

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

强制覆盖master分支

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

解决方案

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout develop
git pull

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin develop:master -f

3 切换到旧分支master。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout master

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git fetch --all

5 把HEAD指向master最新版本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git reset --hard origin/master

参考文档

Git强制覆盖master分支[2]

修改提交人信息

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

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

解决方案

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git filter-branch -f --env-filter \
    "GIT_AUTHOR_NAME='要改成的提交人用户名'; GIT_AUTHOR_EMAIL='要改成的提交人邮箱'; \
    GIT_COMMITTER_NAME='要修改的提交人用户名'; GIT_COMMITTER_EMAIL='要修改的提交人邮箱';"

2 push

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push -u -f

搞定!

根本

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git config user.name "itmuch"
git config user.email "eacdy0000@126.com"

参考文档

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

删除tag

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

解决方案

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 本地删除 
git tag -d [tag名称]
# 远程删除
git push origin :refs/tags/[tag名称]

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git tag -d v1.0
git push origin :refs/tags/v0.9

参考文档

操作标签[5]

git status 乱码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." 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"

解决方案

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git config --global core.quotepath false

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   待发布/git status乱码.md

no 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]

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT牧场 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【linux命令讲解大全】013.Git:分布式版本控制系统的先驱和常用命令清单(二)
我还遇到了如下面错误,lab默认给master分支加了保护,不允许强制覆盖。Project(项目)->Setting->Repository 菜单下面的Protected branches把master的保护去掉就可以了。修改完之后,建议把master的保护再加回来,毕竟强推不是件好事。
全栈若城
2024/03/02
1120
Git常用命令实践总结
注:本地可以有多个分支,远程也可以有多个分支,本地多个分支可以关联远程多个分支,但是,本地分支最好与远程分支同名,以免出现问题。
Tyan
2019/05/25
4630
Git全栈开发者使用指南
除此之外,还可以下载《progit》——这是最棒的Git学习资料,而且有中文版本。
三分恶
2021/01/05
8690
Git全栈开发者使用指南
Git Pro深入浅出(一)
什么是“版本控制”?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 版本控制系统(VCS)应用而生。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
奋飛
2019/08/15
1.1K0
27.git的简单使用
安装 https://git-scm.com/downloads 一直点下一步就可以,安装完后打开方法:‘开始菜单’-->'Git'-->''Git Bash 安装完成后设置名字和电子邮件  bash
zhang_derek
2018/04/11
9370
27.git的简单使用
git相关操作
Text-to-speech function is limited to 200 characters
botkenni
2019/09/02
6800
git相关操作
Git
首先要了解到Git分为几个区域,有工作区、暂存区、版本库、远程仓库。然后在后边会解释项目在各个区域移动。
不作声
2020/08/02
4330
Git实战
学习Git有一段时间了,一路上也一直在写有关于Git方面的文章,但总觉得不是我想要的,就是感觉有点肉肉的,不够直接,不够马上出效果,所以才有了这篇文章,当然这文章可能会不断更新和修正,希望读者可以作为一个工具文章使用,我也会努力将其优化的更加的符合工作场景
迹_Jason
2019/05/28
8950
Git-【技术干货】工作中Git的使用实践
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
洋仔聊编程
2019/09/19
6810
Git-【技术干货】工作中Git的使用实践
学习笔记之git命令行的详细使用
git仓库,你可以简单理解成一个目录,这个目录里面的所有文件都可以被git仓库管理起来,每个文件的修改、删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
s_在路上
2018/09/11
1.1K0
学习笔记之git命令行的详细使用
不会吧?你这些Git命令都不会~
1、设置与帮助 1. git help <command> # 显示指定命令的help 2. git config --global user.name "your name" 3. git config --global user.email "your email" 2、修改与提交 1. git status # 查看工作区状态 2. git add <file> # 将指定文件修改提交到本地暂存区 3.
chengcheng222e
2021/11/04
4400
Git常用命令
Git是一种分布式版本控制系统,可以进行多人的协作开发,基本大部分的软件开发相关的公司都会使用该软件,下边记录一些常用的命令
芝士就是菜
2024/07/14
1121
Git常用命令
漫谈Git和Github
上期漫谈版本控制系统中我们谈到了版本控制系统的四个演进过程,即悲观锁版本 -> 乐观锁版本 -> 多分支版本 -> 分布式版本,目前我们使用最多的是分布式版本,本期我们就来介绍下分布式版本控制系统的具体实现Git和GitHub。
木可大大
2018/04/12
1.6K0
漫谈Git和Github
【Git】常用命令大全(二)
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。在Git 命令行中执行下面命令:
陶然同学
2023/02/24
3800
【Git】常用命令大全(二)
通宵总结!值得你收藏的Git命令清单(全),切莫书到用时方恨少
  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
陈哈哈
2021/10/13
4470
常见Git命令汇总
最近,有朋友私信让我就git 使用做篇文章分享,分享一下我在日常工作中是如何使用git的。我当场就收费两包辣条,最后讨价还价,朋友用1.5包辣条骗到了这篇文章,等他欣喜的走了我打算直接分享出来,气死这个吝啬鬼,当然最终还是希望本文对你有所帮助。
BlueSocks
2022/04/02
6070
常见Git命令汇总
Git 帮助手册
国外网友制作了一张 Git Cheat Sheet,总结很精炼,各位不妨收藏一下。
硬件开源小站
2023/04/07
4.4K1
Git 帮助手册
git使用步骤_小猪酸奶的使用步骤
接触Git也些年头了,对于Git的使用也算是略有心得,想着 出于自己日后回顾,也便于他人查阅学习的目的,遂有此文, 相信看完此文你的Git使用会更进一步,谢谢~
全栈程序员站长
2022/11/08
1.1K0
git使用步骤_小猪酸奶的使用步骤
git 常用指令与简单规范
随着前端项目数量、前端开发人员、前端业务的日渐增多,则非常有必要整理一份简单的 git 规范,来进行项目开发的规范化约束。本文包括开发常用 git 指令、git 分支管理规范、git 提交规范等。
蓓蕾心晴
2023/10/19
2850
Git技术干货!工作中Git的使用实践和常用命令合集!
从本质上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。
洋仔聊编程
2020/08/02
5510
相关推荐
【linux命令讲解大全】013.Git:分布式版本控制系统的先驱和常用命令清单(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验