【问题标题】:When I "git push" git now says "Create pull request for ...". Why?当我“git push”时,git 现在说“为...创建拉取请求”。为什么?
【发布时间】:2015-08-11 16:08:03
【问题描述】:

我正在对分支中的一个项目进行更改,到目前为止,除了我之外没有其他人知道该项目。然而,从最近开始,当我 git push 到这个项目时,我现在收到了这个作为回复的一部分:

remote: Create pull request for <<my branch>>:
remote:   https://bitbucket.org/...

我不知道为什么 Git 会给我这个我以前从未见过的消息。

即使我删除远程分支(使用“git push origin :&lt;&lt;my branch&gt;&gt;”我现在仍然收到此消息!(我成功删除远程分支,但消息仍然存在)

【问题讨论】:

  • 听起来像是在 bitbucket.org 执行的服务器端钩子。
  • 好吧,没有做任何事情来导致这样的事情,而且由于只有两个开发人员有问题,无法想象是谁/什么会做的.它可能是什么样的“钩子”,我如何确定这种东西是否存在?
  • 我也是第一次看到这个,bitbucket/atlassian 一定在做一些下一级的事情来让人们参与进来。
  • 我也看到了。显然,推送只是正常发生,如果您不想发出拉取请求,似乎可以忽略输出。
  • 我还没有找到改变的理由,但如果它也让你烦恼,请考虑投票this bitbucket site issue

标签: git bitbucket githooks git-push


【解决方案1】:

注意:现在可以禁用这些消息。见Jake's answer。请阅读我的回答以获取技术解释。

remote: 为前缀的所有内容都已由服务器上的receiving script1 发送。 Bitbucket 可能想让您更轻松地创建拉取请求。


1 这样的post-receive 挂钩示例使用echo 向用户发送消息,如上面的链接中所述。一旦所有推送的数据完全保存在服务器上,它将被调用:

标准输出和标准错误输出都被转发到另一端的 git send-pack,因此您可以简单地为用户回显消息。

在服务器上:

git@example.com:~/stackoverflow.git/hooks$ cat post-receive 
#!/bin/bash

echo "This is an example of a git hook running at the server"

在客户端:

$ git push git@example.com:stackoverflow.git master:master
Counting objects: 1, done.
Writing objects: 100% (1/1), 187 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: This is an example of a git hook running at the server
To git@example.com:stackoverflow.git
   4751391..01882eb  master -> master

【讨论】:

  • 我知道没有这样的“钩子”,并且可以肯定地说“没有人在这里”最近(或曾经......)建造了一个。我真的不知道您所说的“让您更轻松地创建拉取请求”是什么意思,因为我没有这样的愿望或意图。 (这是“我自己的,私人的,只是为了确保我不会冻结任何东西......”分支。)
  • @MikeRobinson 这个钩子可能是 BitBucket 设置的通用钩子。您可能无法控制这些。
【解决方案2】:

我认为 TimWolla 是对的,但我只是想添加 this post from Atlassian,它阐明了 Atlassian 的政策:

在 Stash 3.3 中,添加了一项功能,可以在推送新分支或没有拉取请求的分支时向终端中的用户显示一条消息,其中包含创建拉取请求的链接。本指南将说明如何关闭此功能。

remote:
remote: Create pull request for ABC-123-fix-bug:
remote: http://localhost:7990/projects/PROJ/repos/REPO/compare/commits?sourceBranch=refs/heads/ABC-123-fix-bug
remote:

目前此功能只能全局开启或关闭。 [...]

要关闭此功能,请执行以下操作:

  1. 导航到 Stash 管理屏幕的“管理加载项”部分
  2. 从下拉列表中选择“系统”
  3. 搜索“Bundled Hooks”展开它及其模块
  4. 找到“print-branch-links-hook”模块,点击禁用

【讨论】:

  • 我看到了这个,但它不适用于 bitbucket 用户。管理帐户下有一个“插件管理”选项,但没有其他列出的选项。
  • 没关系...我看到这是一个“收费”。现在我明白了它的来源,我知道如何忽略它。 :-)
  • 是否可以编辑他们返回的 URL?能够包含目标分支“&dest=develop”会很好。现在它自动默认为master。当开发人员忘记将目的地切换到开发分支时,它会导致问题。
【解决方案3】:

TimWolla 提供了完整的解释,但从长远来看如何解决它:在this support ticket 上提供您的反馈,以表明您与其他用户对此问题表达的挫败感一样。

更新:自 2016 年 9 月 27 日起,这不再是一个问题,Atlassian 已就此事提供了official response

以下是禁用这些消息的说明:

  1. 使用浏览器登录 BitBucket。
  2. 点击窗口右上角的用户图标。
  3. 转到BitBucket Settings
  4. 取消选中“启用控制台消息”。
  5. 按下面的“更新”按钮。

【讨论】:

  • 如果您在 Bitbucket 中没有此选项,或者如果用户不是您可以使用(jenkins 用户)登录到 Bitbucket 的用户,您有什么建议吗?
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 2019-09-10
  • 2022-01-19
  • 2017-01-18
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多