【问题标题】:Create/Update a Git pull request from command line?从命令行创建/更新 Git 拉取请求?
【发布时间】:2015-10-17 09:10:23
【问题描述】:

我需要从命令行创建一个 git pull-request,而不需要安装任何包装器或其他软件。有什么办法可以在 git 中这样做吗? 我似乎找不到任何支持这一点的官方 git 文档。

【问题讨论】:

标签: git unix command-line pull-request


【解决方案1】:

UPD:看起来是真的,你不能“开箱即用”。你必须安装一个包装器。检查这个Can you issue pull requests from the command line on GitHub?也许你可以在那里找到解决方案。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • @greg-449 你是对的,这不会解决你的问题。我更新了我的答案
【解决方案2】:

编辑:

您似乎想要一个 GitHub 拉取请求,而不是 Git 拉取请求。 要查看差异,这个答案有一个很好的解释:

https://stackoverflow.com/a/6235394/245966

Git 本身没有“拉取请求”这样的东西。 拉取请求的概念是由使用 Git 的平台引入 Git 生态系统的,例如 GitHub 或 Atlassian Stash。

由于它不是“原生”Git 概念,因此您没有任何 Git 内置插件来从命令行打开 GitHub 拉取请求。

有一个https://github.com/github/hub 工具可以帮助您从命令行自动化常见的 GitHub 流。

话虽如此,当谈到打开 GitHub 拉取请求或 Atlassian Stash 拉取请求时,我编写了一些命令行工具,您可以将它们放入 PATH 来完成这项工作。它们是为我的特定用例编写的,请随时根据您的需要对其进行修改并使用它们。

对于 GitHub:

对于 Atlassian Stash:

要使它们正常工作,您必须在您的存储库中正确配置 originupstream 分支。 它们以粗略的方式工作,通过解析 git remote 命令的输出来构造正确的 GitHub/Stash 拉取请求 URL,然后在浏览器中打开它们。

shell 脚本还会检查其他内容,例如确保从正确的分支打开拉取请求等。

对于GitHub,也可以看看

它可以猜测下一个拉取请求的编号,并在你推送之前将其放入提交消息中。

【讨论】:

【解决方案3】:

令人惊讶的是(对很多人来说),拉取请求是 git 世界的一等公民,而不是 GitHub 发明的东西。

使用git request-pull 创建一个电子邮件文本,您可以将其发送给应该从服务器获取一些修订的人。

此服务器可能是非常基本的东西,例如只读文件共享或其他。

Git Book 中深入讨论了该主题:https://git-scm.com/book/ch5-2.html

举个例子:你创建了一个 repo,在 origin/master 分支上引入了一个补丁,并将它发布到一个名为 //myserver/myrepo.git 的文件共享上。然后你输入

git request-pull origin/master //myserver/myrepo.git

然后获取命令的输出,将其粘贴到电子邮件中,您就有了拉取请求。

【讨论】:

    【解决方案4】:

    Bash 脚本

    看看下面的article,它将帮助您从命令行创建 PR。

    使用hub

    • 在您的机器上安装hub 包。关注此link
    • 结帐到新分支:
      git checkout -b your-branch-name
      
    • 提交您的更改或创建一个空提交:
      git commit --allow-empty -m "Your commit message"
      
    • 推送更改:
      git push --set-upstream origin your-branch-name
      
    • 运行以下命令创建拉取请求:
      hub pull-request
      

    【讨论】:

      【解决方案5】:

      2020 年 5 月:您可以使用GitHub CLI "gh"

      见“GitHub CLI allows you to close, reopen, and add metadata to issues and pull requests

      GitHub CLI 0.8 使从终端处理拉取请求和问题变得更加简单。此版本包括两个主要功能:

      • 您不再需要在创建问题后立即在浏览器中打开您的问题或拉取请求来添加元数据。
        现在,您可以在创建拉取请求和问题时添加审阅者、标签、受让人、项目和里程碑(如果适用)。
      • 使用 gh pr closegh pr reopengh issue closegh issue reopen 直接从 CLI 关闭和重新打开拉取请求和问题。

      在我们的README 中查看如何升级!

      【讨论】:

      • 企业版不可用:|
      • @JohnSamuel 是的,the README mentions“我们计划在 GitHub CLI 测试结束后(可能在 2020 年底)支持 GitHub Enterprise Server”。在OP的问题的上下文中,github.com就足够了。
      • 哦,是的。我也读过:)。但是有其他方法可以从命令行创建拉取请求吗?
      • @JohnSamuel 不过有初步支持:github.com/cli/cli/pull/823
      • 很高兴看到它成型:)
      猜你喜欢
      • 2020-07-22
      • 2019-02-04
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2020-09-22
      • 1970-01-01
      相关资源
      最近更新 更多