从某些git提交中删除文件,同时保持本地版本不变
情况如下:我们的git存储库中有一个文件从某些git提交中删除文件,同时保持本地版本不变,git,github,git-lfs,Git,Github,Git Lfs,情况如下:我们的git存储库中有一个文件a.out,它随着时间的推移而增长,现在变得太大,无法推送到github。我是在规模过大后才意识到后几次承诺的,所以回购协议是这样的: COMMIT5(头)包含A.out超过100mb COMMIT4不包含A.out COMMIT3不包含超过100mb的A.out COMMIT2(起点/终点)不包含A.out COMMIT1不包含A.out不超过100mb COMMIT2是我推送到github的最后一次提交,现在我无法在COMMIT5之后推送 如何从提
a.out
,它随着时间的推移而增长,现在变得太大,无法推送到github。我是在规模过大后才意识到后几次承诺的,所以回购协议是这样的:
- COMMIT5(头)包含
超过100mbA.out
- COMMIT4不包含
A.out
- COMMIT3不包含超过100mb的
A.out
- COMMIT2(起点/终点)不包含
A.out
- COMMIT1不包含
不超过100mbA.out
A.out
,同时在本地保持它的最新>100mb版本(并且未从git跟踪)
编辑:这个问题源于github的一个大文件问题,这个具体案例可能可以按照(由@phd指出)中的解释进行处理。但是,如上所述的问题当然与涉及的文件大小无关。在我的特定情况下,git版本太旧,目前无法支持git lfs,但我不想等到服务器版本更新后再使用。git rebase-I HEAD~4//重新设置过去4次提交的git历史记录 它将向您显示这4个提交的列表。如果您想更改远程的历史记录,您可以选择编辑commit3甚至commit2(不推荐) 当您重新设置提交3的基期时,只需将A.out添加到.gitignore即可。 添加它以提交并继续重新设置基础
如果您以前没有使用git rebase,我建议您先熟悉它git rebase-I HEAD~4//重新设置过去4次提交的git历史记录 它将向您显示这4个提交的列表。如果您想更改远程的历史记录,您可以选择编辑commit3甚至commit2(不推荐) 当您重新设置提交3的基期时,只需将A.out添加到.gitignore即可。 添加它以提交并继续重新设置基础
如果您以前没有使用git rebase,我建议您先熟悉它我假设您当前所在的分支的名称为“master”
git签出-b新分行委员会2
git rm a.out
。提交这些更改git签出主机
git重新设置新分行的基础-i
git rm a.out
,然后git rebase--继续执行
,以继续执行rebase
在这个过程结束时,您可以使用
git branch-d new branch
安全地删除新分支,并将a.out从git回购协议外部复制回来。我假设您当前所在的分支的名称为“master”
git签出-b新分行委员会2
git rm a.out
。提交这些更改git签出主机
git重新设置新分行的基础-i
git rm a.out
,然后git rebase--继续执行
,以继续执行rebase
在此过程结束时,您可以使用
git branch-d new branch
安全地删除新分支,并将a.out从git repo外部复制回来。可能重复@phd:问题源于一个大文件,此特定情况可能会如链接中所述得到解决。但是重定基址当然完全独立于所涉及的文件大小。此外,我们的服务器安装了git版本1.7.10.4,而根据,git lfs需要版本>=1.8.2。可能是@phd的副本:这个问题源于一个大文件,这个具体案例可能会如链接中所述得到解决。但是重定基址当然完全独立于所涉及的文件大小。此外,我们的服务器安装了git版本1.7.10.4,而根据,git lfs需要版本>=1.8.2。