【问题标题】:How can I test a pull request before merging it?如何在合并之前测试拉取请求?
【发布时间】:2021-04-29 13:22:42
【问题描述】:

我是团队的一员。我们的过程是创建一个单独的分支,在单独的分支上工作,然后将该分支推送到“原点”并向 master 发出拉取请求。

我正在尝试使用默认命令行 Git 变得更好。

然后另一个人在分支上提出拉取请求。有没有一种简单的方法可以将该分支拉到我的本地并签出分支,以便我可以在批准拉取请求之前测试代码?

【问题讨论】:

    标签: git github


    【解决方案1】:

    甚至可以直接签出“远程分支”,无需创建本地分支(git 会说您正在处理 detached HEAD 状态),因此,使用 Sajib 的示例:

    git fetch origin
    git checkout origin/whatever
    

    【讨论】:

    • 我经常这样做,因为它避免了创建本地分支。结帐,测试,忘记它。
    • 除了git checkout origin/whatever,你也可以使用git cherry-pick origin/whatever(如果你想保留当前分支和HEAD指针)。
    • @SajibKhan 我不认为它会创建一个新的本地分支。如果您改为使用git checkout -b whatever,它将创建它。
    【解决方案2】:

    您可以签出创建拉取请求的分支(例如,feature)。

    $ git fetch
    
    # create a new branch 'test-feature' with 'origin/feature' history
    $ git checkout -b test-feature origin/feature
    # now test here
    

    您可以将master 合并到test-feature 分支并测试是否一切正常!

    $ git pull origin master
    # test more
    

    【讨论】:

      【解决方案3】:

      首先,你必须获取分支:

      git fetch origin
      

      然后你可以列出所有被改变的文件:

      git diff --name-only origin/master 
      

      【讨论】:

        【解决方案4】:

        正如一些人建议的那样,您可以查看相关分支。您也可以拉取请求本身,如 Github here 所述。

        我创建了a tool,它会自动将所有拉取请求部署到您自己服务器上的唯一临时测试 URL,如果您希望 QA 团队能够在不需要开发环境的情况下测试拉取请求,这将非常方便在他们的每台机器上。

        【讨论】:

          【解决方案5】:

          免责声明:我是 Pull Dog 的创造者,但我真的相信它很好地解决了这个特殊问题。

          我做了一个GitHub app called Pull Dog。对于您打开的每个拉取请求,它会获取您的 docker-compose.yml 文件,创建一个新的测试环境,在其上运行 docker-compose up,打开防火墙中暴露的端口,并发布一个包含每个端口的连接详细信息的链接。

          Portainer(撰写本文时在 GitHub 上有 15k 颗星)正在将它用于他们的项目。您可以查看他们的任何拉取请求以了解其行为方式。

          亮点:

          • 完全托管。无需托管任何东西。
          • 我花了 47 秒来设置我自己的项目。
          • 免费计划可满足最基本的需求,否则价格便宜。

          【讨论】:

            【解决方案6】:

            如果您使用的是 github,请转到拉取请求并滚动到向下。单击命令行说明(在合并拉取请求按钮旁边)。展开它。按照第一步。更改将被拉到另一个分支的本地。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-04-06
              • 2017-12-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-04-07
              • 1970-01-01
              相关资源
              最近更新 更多