When I “git push” git now says “Create pull request for …”. Why?

I am making changes to a project in a branch that, so far, is known to no one else but me. However, starting recently, when I git push to this project, I now receive this as part of the response:

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

I have no idea why Git is giving me this message, which I have never seen before.

Even if I delete the remote branch (with “git push origin :<<my branch>>” I now still get this message! (I successfully deleted the branch on the remote, but the message remains)

  • Replicate Gated check-in functionality in Visual Studio + VSO + Git
  • Can a pre-receive hook block a user from pushing new files/folders?
  • post-receive hook fails - any chance to see why?
  • Git Post-receive hook with part of work tree
  • Can Git be made to preserve HFS+ extended attributes?
  • pull hook after pushing to a git repo
  • githook doing actions on push based on working tree
  • using git hook after commit
  • 3 Solutions collect form web for “When I “git push” git now says “Create pull request for …”. Why?”

    Note: These messages can be disabled now. See Jake’s answer. Read along my answer for the technical explanation.

    Everything that is prefixed by remote: has been sent by the receiving script1 on the server. Bitbucket probably wants to make it easier for you to create a pull request.

    1 Example of such a post-receive hook using echo to send a message to the user as explained in the link above. It will be called once all the pushed data is completely saved on the server:

    Both standard output and standard error output are forwarded to git send-pack on the other end, so you can simply echo messages for the user.

    On the server:

    git@example.com:~/stackoverflow.git/hooks$ cat post-receive 
    echo "This is an example of a git hook running at the server"

    On the client:

    $ 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

    I think TimWolla is right, but I just wanted to add this post from Atlassian, which clarifies Atlassian’s policy:

    In Stash 3.3, a feature was added to display a message to users in the terminal with a link to create a pull request when a new branch or branch with no pull requests is pushed. This guide will explain how to turn this feature off.

    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

    Currently this feature can only be turned on or off globally. […]

    To turn this feature off, do the following:

    1. Navigate to the ‘Manage add-ons’ section of the Stash admin screens
    2. Select ‘System’ from the dropdown
    3. Search for ‘Bundled Hooks’ expand it and its modules
    4. Find the ‘print-branch-links-hook’ module, click Disable

    TimWolla provided the full explanation, but here is how to get it fixed in the long term: Provide your feedback on this support ticket to show that you share the frustration expressed by other users over this issue.

    UPDATE: As of 2016-09-27 this is no longer an issue and Atlassian has provided an official response on the matter.

    Here are the instructions for disabling these messages:

    1. Log into BitBucket with your browser.
    2. Click on your user icon on the top-right corner of the window.
    3. Go to BitBucket Settings
    4. Uncheck “Enable console messages.”
    5. Press the “Update” button below.

    Bitbucket Settings - Console Messages

    Git Baby is a git and github fan, let's start git clone.