【问题标题】:Git Push is working via Terminal but not via XcodeGit Push 正在通过终端工作,但不能通过 Xcode
【发布时间】:2016-03-18 04:52:09
【问题描述】:

我在本地计算机的 Google Drive 文件夹中创建了一个远程 git 存储库

git init --bare project.git

并添加远程路径如下

git remote add origin '~/Google Drive/git/project.git'

当我通过 Xcode 提交时,它会正确显示带有正确分支的推送选项复选框(在本例中为 master)。我将其标记为选中,然后按“提交并推送”,显然是这样做的,但实际上没有推送到远程存储库。当我从“源代码管理 -> 推送”推送时,它显示成功消息,但我的远程存储库没有更新。

当我从终端运行 push 命令时,它会成功更新远程存储库。

git push origin master

如何修复让Xcode(7.1.1)可以推送成功?

已编辑:附注,当我意识到这一点时,这已经让我很困扰了。和最初一样,我认为它也可以通过 Xcode(可能是 7 之前的某个版本)工作。

已编辑: @VonC 我知道 git push 是如何工作的。 finder 中某些对象的修改日期已更改。

已编辑:根据@VonC 的指示,现在当 project.git 移到“Google Drive”文件夹之外的不同位置时,推送正在 Xcode 中工作。但是,我希望它与“Google Drive”文件夹一起使用。

已编辑:我进一步将 project.git 移动到名称包含空格的文件夹中,并且 xcode 没有推送,但终端仍在推送。

【问题讨论】:

    标签: xcode git


    【解决方案1】:

    Xcode 7.1 不会推送到带有空格的远程 repo 路径,但终端确实提供了路径用引号引起来。希望 Apple 会在新版本中修复它。

    我通过将“Goolge Drive”重命名为“GoogleDrive”并相应地调整了远程路径来解决我的问题。 Google Drive App 提示丢失文件夹,我将其指向重命名的文件夹。

    【讨论】:

    • 我错过了您可以重命名 Google Drive 本身的事实。 +1
    【解决方案2】:

    我的远程存储库没有更新。

    尝试简单地将那个 repo repo 克隆到其他地方,看看是否能取回刚刚推送的内容:

    git clone ~/Google Drive/git/project.git /somewhere/else
    

    不要忘记 bare repo 没有工作树,所以在推送之后,您看不到任何新文件。

    注意:如果带有空格的远程 repo 路径对 XCode 有问题,可能的解决方法是推送到没有路径的路径:

    • 任何一个都是指向 Google 云端硬盘的符号链接
    • 或经过 rsync'ed 到 Google Drive 的路径

    【讨论】:

    • 我在不同的位置进行了克隆,但克隆副本仍然存在同样的问题。 Git Push 是通过终端而不是通过 Xcode 工作的。
    • @zeeawan 你怎么知道推送是否有效?你在裸仓库中做git log 吗?
    • @zeeawan 好的。只需仔细检查~/Google Drive/git/project.git 中的git log,看看确实没有发生推送。
    • git log 在过去一小时只显示了一个更新,尽管我已经通过 xcode 和终端尝试了几次。
    • @zeeawan 你可以尝试在磁盘上(而不是在 Dropbox)上创建一个裸仓库,看看 XCode 是否成功推送到 那个 裸仓库?
    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多