网站首页 > 技术文章 正文
其实也不是很冷门,只是要实现以下需求时,笔者一时间竟然想不起来,还要借助搜索引擎,于是记录一下,算是 备忘。希望对大家也有帮助。
强制覆盖master分支
最近对 Spring Cloud YES[1] 进行了升级,由于改动太多了,导致了大量的冲突,合并比较费劲。于是想用开发分支强制覆盖master分支,以下是步骤。
解决方案
1 切换到develop分支下,并保证本地已经同步了远端develop的最新代码。
git checkout develop git 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"
参考文档
1 git 修改已提交的某一次的邮箱和用户信息[3]
2 git修改提交作者和邮箱[4]
删除tag
前几天要发布一个私人小项目,然而手误,打错标签了,想要删除。由于这种场景比较少,一时间竟然忘记怎么玩了……大写的尴尬。记录下:
解决方案
# 本地删除 git tag -d [tag名称] # 远程删除 git push origin :refs/tags/[tag名称]
示例:
git tag -d v1.0 git push origin :refs/tags/v0.9
参考文档
操作标签[5]
git status 乱码
笔者使用 Iterm2 ,当执行 git status 如果文件名带有中文,会出现乱码,如下所示:
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"
解决方案
git config --global core.quotepath false
此时,再次执行 git status 就会正常显示啦:
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仓库[7]
使用GitLab Mirrors同步Git仓库
使用GitLab Mirrors同步Git仓库[8]
使用post receive hook同步Git仓库
使用post receive hook同步Git仓库[9]
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] 合并两个不相关的Git仓库: http://www.itmuch.com/work/merge-two-git-repo-unrelated/
[8] 使用GitLab Mirrors同步Git仓库: http://www.itmuch.com/work/git-repo-sync-with-gitlab-mirrors/
[9] 使用post receive hook同步Git仓库: http://www.itmuch.com/work/git-repo-sync-with-post-receive/
猜你喜欢
- 2024-09-27 git生成公私钥,并放到github中,免用户名、密码下载代码
- 2024-09-27 这才是真正的Git——Git 全功能揭秘
- 2024-09-27 如果你还不会用git回滚代码,那你一定要来看看
- 2024-09-27 开发工程师的工具包之Git(go开发工程师下载)
- 2024-09-27 idea使用git stash暂存代码。#git
- 2024-09-27 嵌入式高手教程第7集 如何用Git管理本地代码 三哥说技术
- 2024-09-27 Java面试题之项目管理工具 Git 篇
- 2024-09-27 程序员开发必会之git常用命令,git配置、拉取、提交、分支管理
- 2024-09-27 Git 代码防丢指南(代码提交到git怎么忽略文件)
- 2024-09-27 git使用方法,自己整理记录一下(git怎么用?)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 504℃MySQL service启动脚本浅析(r12笔记第59天)
- 482℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 481℃启用MySQL查询缓存(mysql8.0查询缓存)
- 461℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 441℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 438℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)