首页 > 解决方案 > 将选定的提交历史推送到 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,其中还没有任何文件/分支。

标签: gitgithubandroid-source

解决方案


推荐阅读