RubyMine 2016.2 Help

Pushing Changes to the Upstream (Git Push)

The Git integration in RubyMine supports uploading changes from the current branch to its tracked branch or to any other remote branch. If the upload (push) is rejected due to 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 RubyMine update it silently.

Before uploading changes from your local Git repository to a remote repository make sure that:

  • You have a Git hosting account.
  • The target remote Git repository is accessible for your account.
  • You have a pair of ssh keys to access the remote repository.

In this section:

To push changes

  1. On the main menu, choose VCS | Git | Push . The Git Push dialog box opens listing all commits made in the current branch since the last push.
  2. Select the commit to push. The right-hand pane shows the changes included in the selected commit. Use the toolbar buttons to examine the commit details.
  3. Select which files you want to upload. To select all files, click the Select All toolbar button iconSelectAll or press Ctrl+A.
  4. Specify the target remote branch to push the changes to. If you want to upload the current branch to an alternative branch, rather than its tracked branch, click the branch name to edit it (note that completion is available for branch names).

    You can also click the Edit all targets link in the bottom right corner to edit all branch names simultaneously.

  5. Click the Push button, when ready. RubyMine starts the upload.
  6. If push is rejected due to lack of synchronization, update the local branch in one of the following ways:

To update a local branch interactively if push is rejected

When push is rejected due to lack of synchronization between the current local branch and its tracked remote branch, RubyMine displays the Push Rejected dialog box, provided that the Auto-update if push ... rejected check box in the Git page of the Settings dialog box is cleared.

  1. If your project uses several local Git repositories, specify the ones to be updated:
    • To have all the local repositories updated, no matter whether push has been rejected for all of them or not, select the Update non rejected repositories as well check box.
    • To have only affected repositories updated, clear the Update non rejected repositories as well check box.
  2. In the Push Rejected dialog box, specify the way to update local repositories in the future:
    • To have this dialog box displayed upon every reject of push, clear the Remember the update method choice and silently update in future check box.
    • To have RubyMine apply the update procedure invoked from this dialog box silently, select the Remember the update method choice and silently update in future check box.

      After you leave the dialog box, the Auto-update if push ... rejected check box in the Git page of the Settings dialog box is selected and the applied update method becomes default. To change this setting, clear the Auto-update if push ... rejected check box.

  3. Invoke the update procedure rebase or merge by clicking the buttons Rebase or Merge respectively.

To have RubyMine update a local branch automatically if push is rejected

Do one of the following:

  • Open the Settings dialog box, click Git under the Version Control node, and in the in the Git page, that opens, select the Auto-update if push ... rejected check box.

    If you have not invoked any update operation from the Push Rejected dialog box before and you are enabling the check box initially, RubyMine will synchronize the local branch silently by means of the merge operation.

    If you have previously invoked an update operation rebase or merge from the Push Rejected dialog box and selected the Remember the update method choice... check box, RubyMine will apply your last choice.

    Accordingly, to change the "remembered" setting, clear the check box, access the Push Rejected dialog box, select the Auto-update if push ... rejected check box, whereupon invoke another update strategy.

  • During an interactive update in the Push Rejected dialog box, select the Remember the update method choice and silently update in future check box, whereupon invoke the required update method rebase or merge by pressing the corresponding button. RubyMine saves your choice and will apply it to update the conflicting local branch silently until you change the remembered setting.

See Also

Last modified: 1 September 2016