The Git integration in PyCharm 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 PyCharm 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:
- Pushing changes
- Updating a local branch interactively if push is rejected
- Configuring automatic update if push is rejected
- On the main menu, choose Git Push dialog box opens. . The
-
The left-hand pane shows all the commits made in the current branch since the last
push
. To get the list up-to-date, click the Refresh commit list button.
- Select the commit to push. The right-hand pane Commit Details shows the changes included in the selected commit. Use the toolbar buttons to examine the commit details.
-
Appoint the changes to be uploaded by selecting the relevant files in the tree or list. To have all the files selected,
click the Select All toolbar button
or press Ctrl+A.
-
Specify the target remote branch to push the changes to.
- To have the current branch uploaded to its tracked branch, clear the Push current branch to alternative branch check box.
-
To have the current branch uploaded to another existing remote branch, select the Push current branch to alternative branch check box
and choose the required branch from the Target Branch drop-down list.
If your project uses several Git repositories, the list shows only the branches that are common for all repositories. For example, if your project uses
repo_one
andrepo_two
, whererepo_one
has two branchesorigin
andgithub
whilerepo_two
has onlyorigin
, then onlyorigin
will be available from the drop-down list, so there is no way to push togithub
from PyCharm. -
To publish a local branch, that is, to push it to a new branch, select the Push current branch to alternative branch check box
and type the name of the new branch in the text box. PyCharm will automatically set up tracking (
git push -u origin newbranch
).
- Click the Push button, when ready. PyCharm starts the upload.
-
If
push
is rejected due to lack of synchronization, update the local branch in one of the following ways:- Choose the update strategy manually in the Push Rejected dialog box.
- Have the local branch updated automatically.
When push
is rejected due to lack of synchronization between the current local branch and its tracked remote branch,
PyCharm 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.
-
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.
-
To have all the local repositories updated, no matter whether
-
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 PyCharm 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.
-
To have this dialog box displayed upon every reject of
-
Invoke the update procedure rebase
or merge
by clicking the buttons Rebase or Merge respectively.
-
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, PyCharm 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, PyCharm 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
ormerge
by pressing the corresponding button. PyCharm saves your choice and will apply it to update the conflicting local branch silently until you change the remembered setting.
See Also
Concepts:
Procedures:
- Committing Changes to a Local Git Repository
- Rebasing Branches
- Merging, Deleting, and Comparing Branches
- Version Control with PyCharm
Reference:
External Links:
- http://schacon.github.com/git/git-push.html
- http://gitref.org/remotes/#push
- http://schacon.github.com/git/git-merge.html
- http://gitref.org/branching/#merge
- http://schacon.github.com/git/git-rebase.html
- http://schacon.github.com/git/git-clean.html
Web Resources: