| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Git仓库迁移保留commit -> 正文阅读 |
|
[开发工具]Git仓库迁移保留commit |
# 仓库迁移问题记录 ## 参考链接 [使用git filter-repo](https://www.vicw.com/groups/code_monkey/topics/362) [删除git记录中的大文件](http://www.hollischuang.com/archives/1708) [彻底删除git中的大文件](https://www.jianshu.com/p/fe3023bdc825) [git目录下object文件过大清理](https://blog.csdn.net/cysear/article/details/102823671)
## 仓库带commit记录迁移 case如下: 有2个git仓库:repo1、repo2; 想将repo1中的文件移入repo2; repo1的历史日志要保留。 大致思路是伪造远程的repo1仓库为repo2的一个分支,然后合并进来; 若是文件有冲突、或要建立子目录,建议在repo1中先解决,再进行如上操作。 1. 将repo1作为远程仓库,添加到repo2中,设置别名为other
2. 从repo1仓库中抓取数据到本仓库
3. 将repo1仓库抓取的master分支作为新分支checkout到本地,新分支名设定为repo1
4. 切换回repo2的master分支
5. 将repo1合并入master分支
merge过程中解决冲突后使用git merge --continue 继续 ## 清理大文件记录 1. 识别出最大的三个文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -n | tail -3 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 2. 查询大文件的文件名 git rev-list --objects --all | grep 829b9d04b876f058b56849f7296c270a12f3ce04 3. 将该文件从历史记录的所有 tree 中移除 git filter-repo --invert-paths --path "path_to_filename_needs_to_removed" 4. 清理和回收空间(**可省略**) 虽然上面我们已经删除了文件, 但是我们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 所以我们要用命令彻底清除它, 并收回空间,命令如下: rm -rf .git/refs/original/ git reflog expire --expire=now --all git gc --prune=now 至此,我们已经彻底的删除了我们不想要的文件。 5. 推送修改后的repo 以强制覆盖的方式推送你的repo, 命令如下: git push --force
## 使用到的指令 ### git
### bash
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:22:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |