【问题标题】:How do I 'git push' from a local machine to a Google Cloud Platform instance?如何从本地机器“git push”到 Google Cloud Platform 实例?
【发布时间】:2016-05-14 17:50:27
【问题描述】:

Google Cloud Platform 的 documentation 描述了将文件传输到 Google Compute Engine 实例的多种方法。但它没有提到如何使用 Git 来做到这一点。此外,虽然我在 Web 控制台的“开发”下有可用的 Google Cloud 代码存储库,但他不清楚如何将这些与计算实例相关联。

如何将 Git 存储库与 Google Compute Engine 实例和 git push 从我的本地计算机关联到该实例存储库?

【问题讨论】:

  • 这是一个有趣的想法,但我从未在实践中看到过。人们通常使用 CM 工具,例如 Ansible、Chef 和 Puppet。对于简单的情况,我喜欢 Fabric,它易于学习,允许您在 Python 中编写代码推送和主机管理任务,并通过 SSH 工作。

标签: git google-compute-engine google-cloud-platform


【解决方案1】:

由于 SSH 服务默认在 GCE Linux 虚拟机上运行,​​只需按照以下步骤操作:

  1. 在您的本地计算机上运行 gcloud auth login 以授权 gcloud 访问 Google Cloud Platform。
  2. 运行 gcloud compute config-ssh 以使用来自每个实例的主机条目填充 SSH 配置文件。
  3. 通过运行 ssh NAME.ZONE.PROJECT 测试 SSH 到您的 VM 实例

    示例:ssh example-instance.us-central1-a.MY-PROJECT

  4. 在您的虚拟机上设置一个空存储库:

    $ mkdir project.git
    $ cd project.git
    $ git init --bare

  5. 在本地计算机上添加远程存储库:

git remote add origin NAME.ZONE.PROJECT:/<PATH>/project.git

现在您应该可以将项目推送到 VM 上的 Git 存储库了。

【讨论】:

  • 我不能在实例上创建一个 repo 并使用 SSH 推送吗?
  • 我用 GCE VM 上创建 Git 存储库服务器所需的步骤更新了我的答案。
  • 看起来不错,但我现在看不到第一部分的相关性。这只是通过 SSH 推送 repo 的问题。
  • 如果您能进一步详细说明您的问题和用例,我或许可以提供更多信息。
  • 正是您所描述的。只是答案的第一部分与它无关。
【解决方案2】:

我通常使用 gcloud 来克隆 repo

gcloud source repos clone <<repo>> --projec=<<project_id>>

在你可以从命令行使用 git 之后,不知道如何与工具集成,但是从命令行可以很好地工作(至少在 MacO 和 Linux 上)

编辑: 在您编辑问题后,我将使用云构建作业来完成它,即使它可能会更复杂。只需触发在目录上推送并使用其中一种传输文件的方法之后执行复制的作业。

【讨论】:

    【解决方案3】:

    您必须为此操作定义远程。 (使用 git remote add/set-url)


    远程添加

    # Add new remote
    git remote add godaddy1 $user1@foo.com:~/root.git 
    

    远程设置-url

    # replace the current remote if want to replace instead of adding a new one
    git remote set-url godaddy $user1@foo.com:~/root.git
    

    列出所有遥控器

    # List all remotes
    git remote -v
    

    【讨论】:

    • 但是如何指定我的 Google 计算实例,或将我的存储库与实例关联?
    • 您需要找出您的 google git repo 的 url 并进行设置。它可以在您的谷歌帐户下找到
    • 如何将 git Google git repo 与 Google Compute Instance 关联?从“创建实例”开始,我没有看到任何关联的 repo。
    • 我的问题一定不是很清楚。我已经得到了这一切。我有一个谷歌云存储库。我有一个本地仓库,它使用谷歌云仓库作为远程仓库。这只是基本的 git。这个问题与此无关。问题是如何将 repo 与 VM 实例相关联? (例如,如何通过使用 Git 推送来控制我的实例上的内容?)
    猜你喜欢
    • 2022-03-09
    • 2018-02-16
    • 2021-09-09
    • 2015-08-26
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多