【发布时间】:2021-12-22 10:23:42
【问题描述】:
我不确定这是否特定于我正在使用的 repo (PyTorch) 或者它是否普遍适用,但似乎每次我提交拉取请求时,都会在 repo 上创建一个远程分支。这是否应该发生,如果发生,其背后的逻辑是什么?
如果你有自己的本地分支并不断提交和提交拉取请求,为什么不能都在同一个远程分支上进行?
【问题讨论】:
-
你能发布你的确切命令和你看到的结果吗?
-
@Schwern 我会回来的。我不直接使用
git push进行pytorch 开发。有一个名为ghstackgithub.com/ezyang/ghstack 的内部工具,其中嵌入了推送和拉取请求。我刚刚找到了这个链接,目前正在浏览它,我认为实际上是这个工具创建了额外的远程分支(我原以为这是 github 的东西)。我正在尝试了解其背后的原因。 -
我不知道您使用的工具,但是为每个 PR 创建一个新分支并不是一个坏习惯。如果您不希望这些分支之后继续存在,只需在合并 PR 后删除该分支。在我自己的工作流程中,我每次开始任何工作时都会创建一个新分支,并在合并该工作后将其删除。分支很便宜,您无需犹豫创建它们。我喜欢将它们命名为
dev.brief-description-of-the-task,以便更容易弄清楚每个分支以后是什么。 -
@user5965026 "此工具将为堆栈上的每个提交推送并创建拉取请求。" 我想问题已得到回答。我已经看到过 Gerrit 等工具之前使用的这种单一提交分支流程。我不推荐它。虽然每个任务只需要提交一次肯定更简单,但它的用处也少得多。能够将一个任务分成多个提交是一个强大的开发工具; ghstack 把它拿走了。
-
值得指出:“拉取请求”(见 GitHub)不是 Git 的一部分。它们是 GitHub 插件。其他托管站点也添加了类似的东西,但它们都有一些细微的不同,有些不称它们为“拉取请求”(例如,GitLab 将它们称为“合并请求”)。所以你学到的任何关于 GitHub PR 的细节都可能是 GitHub 特有的。
标签: github pull-request ghstack