无法将已推送到Bitbucket的最新提交推送到Github

5

我有两个远程代码库。一个是私有的(Bitbucket),另一个是公开的(Github)。我过去一直使用Github应用程序将更改推送到Bitbucket,然后使用Xcode将相同的提交推送到Github代码库。然而,最近我无法将提交推送到Github,使用SourceTree时出现以下错误消息:

This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/pre-push.

这是在SourceTree中的显示效果:

enter image description here

我该如何让我的Github仓库接受最新的提交?
3个回答

4

您有一个 pre-push 钩子,它告诉您在此存储库中启用了 git-lfs(大型文件支持),但无法在计算机上找到 git-lfs 程序。解决方案是要么删除钩子(位于 .git/hooks/pre-push,如错误消息所示),要么修复您的 PATH,使其可以找到 git-lfs 程序。


好的。我对这个问题还很陌生。我该如何修复我的路径?谢谢。 - Jonathan
PATH 是一个环境变量,包含了一系列搜索目录,你的 shell 使用它来查找你运行的程序。你改变它的方式取决于你使用的操作系统和其他一些细节,但大多数操作系统都使用 bash shell。如果你正在使用 bash shell,只需编辑你的 ~/.bashrc 脚本即可。有很多地方可以找到所有细节,这些细节无法放入注释中。 - db48x
我删除了.git/hooks/pre-push文件。现在我可以再次上传到GitHub了。不过为什么GitHub开始添加这些“.git/hooks/pre-push”文件呢?每次都要手动删除这些文件吗?当我使用Mac上的Github桌面应用时没有问题。但是当我使用命令行时就无法正常工作,除非我删除提到的文件。这样的功能难道不应该是自愿选择的吗? - Sentry.co
2
也许GitHub的桌面应用程序会为您添加它,现在GitHub支持LFS了。普通的git命令行客户端肯定不会这样做,GitHub网页也不能(钩子不会从服务器下载)。我从未使用过GitHub的专业客户端,所以您必须自己弄清楚。也许有一些设置,或者可以在其中配置每个存储库的方法。 - db48x

1

只需要说.git目录在你的代码库的原始本地目录中就足够了,你可能需要像TextWrangler这样的程序来显示以点开头的隐藏文件,以便能够看到它并将其移动到垃圾桶中进行删除(右键单击鼠标)。我花了一个小时才想明白这一点。希望没有其他人浪费那么多时间。


感谢您的帮助。 - Lucas

1
以下是使用Mac终端删除pre-push文件的说明: 首先,cd到您项目的本地存储库所在的目录。(包含.xcodeproj和其他文件的主文件夹).git文件是隐藏的,但是您仍然可以通过在终端中键入cd .git/hooks来访问它。如果您在终端中键入ls以查看当前目录中的所有文件,则会注意到pre-push文件。键入rm pre-push以删除该文件。现在您应该能够将其推送到远程存储库。只需确保cd ..返回到您项目的本地目录即可。就这么简单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接