【发布时间】:2021-04-29 13:22:42
【问题描述】:
我是团队的一员。我们的过程是创建一个单独的分支,在单独的分支上工作,然后将该分支推送到“原点”并向 master 发出拉取请求。
我正在尝试使用默认命令行 Git 变得更好。
然后另一个人在分支上提出拉取请求。有没有一种简单的方法可以将该分支拉到我的本地并签出分支,以便我可以在批准拉取请求之前测试代码?
【问题讨论】:
我是团队的一员。我们的过程是创建一个单独的分支,在单独的分支上工作,然后将该分支推送到“原点”并向 master 发出拉取请求。
我正在尝试使用默认命令行 Git 变得更好。
然后另一个人在分支上提出拉取请求。有没有一种简单的方法可以将该分支拉到我的本地并签出分支,以便我可以在批准拉取请求之前测试代码?
【问题讨论】:
甚至可以直接签出“远程分支”,无需创建本地分支(git 会说您正在处理 detached HEAD 状态),因此,使用 Sajib 的示例:
git fetch origin
git checkout origin/whatever
【讨论】:
git checkout origin/whatever,你也可以使用git cherry-pick origin/whatever(如果你想保留当前分支和HEAD指针)。
git checkout -b whatever,它将创建它。
您可以签出创建拉取请求的分支(例如,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
【讨论】:
首先,你必须获取分支:
git fetch origin
然后你可以列出所有被改变的文件:
git diff --name-only origin/master
【讨论】:
免责声明:我是 Pull Dog 的创造者,但我真的相信它很好地解决了这个特殊问题。
我做了一个GitHub app called Pull Dog。对于您打开的每个拉取请求,它会获取您的 docker-compose.yml 文件,创建一个新的测试环境,在其上运行 docker-compose up,打开防火墙中暴露的端口,并发布一个包含每个端口的连接详细信息的链接。
Portainer(撰写本文时在 GitHub 上有 15k 颗星)正在将它用于他们的项目。您可以查看他们的任何拉取请求以了解其行为方式。
亮点:
【讨论】: