git - 将选定的提交历史推送到 github
问题描述
我正在处理需要与第 3 方共享的本地存储库中的 AOSP 项目。我将 github 用于需要共享的单个项目。目前我正在尝试共享系统/核心存储库,但是我在将其推送到 github 时遇到了问题。看起来 repo 在其历史记录中有一个大文件,被添加然后删除'libunwindstack/tests/files/offline/jit_debug_x86_32/libartd.so'
当我尝试推送包含所有先前历史记录的 repo 时,github 会生成无法推送超过 100MB 的文件的错误。这是因为它在提交历史中,即使它在最近的提交中被删除。
我知道有一个选项可以使用以下命令从 git 历史记录中完全删除该文件:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <path/filename>" --prune-empty --tag-name-filter cat -- --all
,但这不是一个选项,因为本地存储库被我们在不同分支内部运行的许多其他项目使用。这可能会产生不必要的问题。
问题是我是否可以提交 N 个最新提交,甚至只提交到外部 github 存储库的最后一个提交,保留其哈希,所以它不是一个简单的 compy 和对该 repo 的新提交?理想情况下,我希望保留 2018 年删除该文件时的历史记录,并保留该文件之后的所有内容。希望有任何有关此问题的指示。
注意:我试图推送到的远程 github 是一个全新的 repo,其中还没有任何文件/分支。
解决方案
推荐阅读
- neo4j - HTTP 端点的 Neo4j JSON 格式未指定?
- reactjs - 如何使用 React Router 让我的父组件在页面刷新时重新运行 api 调用?
- docker - docker 容器如何可靠地表明它们不仅在运行,而且已经准备就绪?
- javascript - 通过javascript在表中插入数据
- python - Python舍入函数返回不同的答案
- ruby - 如何在 ruby 中发送多个击键?
- ios - 我是否必须将 iPhone 连接到我的 Mac 才能创建配置文件?
- c++ - 是否有清除 mp_exp_t 类型变量的功能?
- node.js - 为什么yaml在解析连字符时会出错
- python - 如何修复滑块值和返回值 - kivy