繁体   English   中英

git 推送未显示在 github 上并且仍然 lfs 错误

[英]git push not showing on github and still lfs error

我最近在本地创建了一个新目录,并使用不同的源代码控制将我从另一个项目中所做的所有更改复制到了这个新目录中。

在我做的新目录中

git remote add origin git@github.com/user/repo.git //ssh url to my empty Github Repo

之后,我做了git status然后 git add all 和 git commit。 最后我做了git push ,我一直收到一个错误,说大文件无法推送到 Github。 为此,我做了git lfs installgit lfs track "*.[filename]"但这似乎没有用,所以我只是从我的新目录中删除了它。 删除后,我再次做了git status并提交了这些文件的删除。 但是,当我推送时,我仍然会收到有关大文件的错误并检查lfs工具。 当我 go 进入我的新目录时,抱怨的大文件 git 不再存在。

您可以尝试在首次提交大文件之前将 repo 重置为:

git reset HEAD~2 --soft

然后把事情整理好, commit ,然后再次push

另一种方法是使用filter-branch ,根据 git 手册页:

假设您想从所有提交中删除一个文件(包含机密信息或侵犯版权):

 git filter-branch --tree-filter 'rm filename' HEAD

发生这种情况的原因是,即使您现在已经删除了这些文件,它们仍然是第一次提交的一部分。 Git 想要保留存储库的完整历史记录(嘿,这是您想要使用它的原因之一,对吗?),因此它将这些文件作为提交历史记录的一部分。

删除后,我再次做了 git status 并提交了这些文件的删除。 但是,当我推送时,我仍然会收到有关大文件的错误并检查 lfs 工具。 当我 go 进入我的新目录时,抱怨的大文件 git 不再存在。

我假设您的意思是您对大文件执行了git rm 这将从当前工作目录中删除文件,并且在您git commit后添加一个提交,显示文件已被删除。 但是,您添加大文件的提交仍保留在 git 存储库的历史记录中 这意味着当你git push时,它仍然会尝试推送添加大文件的提交。

如果您最近添加了大文件,您可以在添加之前使用git reset将当前分支重置为提交。 请注意,这将删除自该提交以来的所有更改。 如果您有其他想要保留的更改,则需要使用git filter-branch或第 3 方工具。 如何从 Git 存储库中的提交历史记录中删除/删除大文件? 对如何执行此操作有很好的描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM