Git integration with IntelliJ IDEA supports uploading changes from the current branch to its tracked branch or to any other remote branch. If push is rejected due to the lack of synchronization between your local repository and the remote storage, you can either interactively choose the strategy to update the local branch, or have IntelliJ IDEA update it silently.

In this topic:

To push changes

Do the following:

  1. From the main menu, choose VCS | Git | Push. The Push Commits dialog opens showing all Git repositories (for multi-rooted projects) and listing all commits made in the current branch in each repository since the last push.

    If you have a multi-rooted project where repositories are not controlled synchronously, only the current repository is selected by default. For details on how to enable synchronous repositories control refer to Version Control Settings: Git .

  2. If necessary, you can modify the path to the remote repository by clicking it. The label turns into a text field where you can type the new path or invoke completion by pressing ⌃Space or ⌃Space⌃Space or ⌃Space⌃Space or ⌃Space^ Space, ⌃Space or ⌃Space⌥ Slash, ⌥/ or ⌥/.

    If there are no remotes in the repository, the Define remote link appears. Click this link and specify the remote name and URL in the dialog that opens.

  3. If you want to preview changes before pushing them, select the required commit. The right-hand pane shows the changes included in the selected commit. You can use the toolbar buttons to examine the commit details.

    If the author of a commit is different from the current user, this commit is marked with an asterisk.

  4. Click the Push button when ready. IntelliJ IDEA starts the upload.

To update a local branch if push is rejected

If push is rejected due to the lack of synchronization between the current local branch and its tracked remote branch, IntelliJ IDEA displays the Push Rejected dialog box, provided that the Auto-update if push of the current branch was rejected check box in the Git settings page of the Preferences dialog box is cleared.

  1. If your project uses several Git repositories, specify which of them you want to update. If you want to update all repositories, no matter whether push was rejected for them or not, select the Update not rejected repositories as well option. If this option is cleared, only the affected repositories will be updated.
  2. If you want IntelliJ IDEA to apply the update procedure silently the next time push is rejected using the update method you choose in this dialog, select the Remember the update method choice and silently update in the future option.

    After you leave this dialog, the Auto-update if push of the current branch was rejected check box in the Git settings page of the Preferences dialog box will be selected, and the applied update method will become the default one.

    To change the update strategy, disselect this option to invoke the Push Rejected dialog next time push of the current branch is rejected, apply a different update procedure, and select the Remember the update method choice ... option once again.

    Note that if you haven't selected an update procedure from the Push Rejected dialog before, and you select the Auto-update if push of the current branch was rejected check box in the Git settings page of the Preferences dialog, IntelliJ IDEA will synchronize the local branch silently using git-merge by default.

  3. Select the update method (rebase or merge) by clicking the Rebase or Merge button respectively.