如何在Mac上使用GitHub与本地Git仓库

13

我正在尝试使用本地Git存储库(即完全不托管在GitHub上),但我在使用GitHub for Mac时遇到了问题。

它显示我的传出更改,但然后我似乎必须将其推送到服务器,并且似乎没有方法执行“同步”而不发布到GitHub(我们不想这样做)。

我还没有找到关于此的任何文档或用户遇到类似问题的情况。

有什么建议吗?


GitHub for Mac是GitHub的客户端...。我在它的文档中没有看到它可以与其他Git存储库一起使用的说明。 - Perception
我确实考虑过这一点(特别是它被称为 GitHub for Mac),但你绝对可以将其用于非 GitHub 存储库,因此我认为会有一些支持。显然,我的想法是错误的。 - Kevin McCarpenter
4个回答

18
该应用程序是一个免费的工具,旨在鼓励您使用GitHub,并且与GitHub配合使用效果最佳,但现在也可以与私有存储库一起使用,如http://mac.github.com/help中所述。
引用: 多个Git远程和非GitHub远程 GitHub for Mac不支持多个Git远程。我们只会使用原始远程。如果您想要推送和拉取其他远程,则建议使用命令行客户端。 GitHub for Mac经过优化,可与GitHub远程配合使用,但如果您希望使用非GitHub远程,则也可以正常工作。在设置选项卡中手动设置远程,其他所有内容都应该按预期工作。
我已经测试了最新的[版本1.2.6(010d408)]软件,并对我的一些私人非GitHub远程进行了测试,经过一些调整,似乎可以正常工作。理论上,您应该只需将现有存储库拖放到新存储库窗格中即可。如果您本地计算机上的现有存储库已经设置为与命令行中的远程配合使用,则应该可以在GitHub软件中正常工作....
然而,在此过程中我遇到了一些小问题。例如,GitHub for Mac软件拒绝承认我的某个存储库。我不断地将它拖放到Mac软件中,但它却不会显示在存储库列表中。有时,来自我的GitHub账户的随机存储库会代替它出现!我的其他某些私人存储库运行得很好,我可以通过手动将.git目录移动到另一个文件夹,然后将本地存储库拖入Mac软件窗格中来规避这个奇怪的错误。然后,它将提示在该文件夹中设置新存储库。完成后,我用旧备份替换了新的.git目录。即使这个小问题已经解决,我仍然偶尔会收到随机错误对话框,告诉我在浏览提交时发生了“Git错误”,尽管这些信息似乎只是烦扰,因为所有的提交信息都正确显示。我通常从命令行工作,并且非常确定我的git存储库的设置没有问题。
总之,GitHub for Mac 对于基于 GitHub 的存储库非常棒,但对于不同远程的自己的存储库仍然不完美。然而,还有其他免费工具,如 gity 和 gitx,在 Mac 上工作,并允许您使用托管在任何地方的存储库。我没有尝试过 Tower,但它看起来非常棒。

好的,我本来就怀疑是这样,虽然我希望我错了。感谢您的意见和建议。 - Kevin McCarpenter
是的。这很遗憾,因为它是一个不错的工具,但他们最终还是要赚钱的。 - learnvst
2
感谢您的评论。我答错了,真是太尴尬了!我已经很久没有看过这个问题了,今天早上尝试了一下,结果不尽如人意。答案已经更新以反映我的发现。 - learnvst

4
我并没有Mac来尝试操作,因此可能会忽略一些明显的问题,但是根据http://mac.github.com/help的说明:

GitHub for Mac被优化为与GitHub远程库兼容 - 但如果您希望使用非GitHub远程库,则可以正常使用。 在设置选项卡中手动设置远程库,其他所有内容都应该按预期工作

因此,我认为在设置中您可以执行类似于在命令行上执行以下操作的操作。
git remote add origin some/shared/place/within/your/network

当你点击同步按钮时,它应该使用这个。我猜Github客户端在幕后简单地使用了你的项目的.git/config文件,所以如果你愿意,你可以随意编辑你的远程文件。
例如,查看此帖子以了解设置共享远程库的几种不同方法。

这可能最近有所改变。按照这些说明,您会发现同步按钮显示为“发布”;单击它将尝试在您的GitHub帐户上发布存储库。相反,在通过设置添加远程之后,使用Cmd+P(或使用存储库菜单)进行拉取。 - Tim Keating

1

我们的组织不允许代码在我们的墙外托管。我们可能会转向另一个客户端。谢谢。 - Kevin McCarpenter

1
在命令行中克隆你的代码库,然后将其作为本地代码库添加到GitHub.app中。这对我来说似乎是有效的 - 看起来GitHub.app成功地从.git / config文件中读取了origin并使用它进行同步。

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