How to commit a partial file (hunks) to git in pycharm
This is not currently supported. Follow this ticket for details (comment/watch to be notified when it will be implemented).
http://youtrack.jetbrains.com/issue/IDEA-63201
UPDATE 2018-03-13:
This functionality is now implemented (more or less) and will be available in 2018.1 version. A bit more can be found in this blog post.
Since Pycharm 2018 partial commit (similar to git add -p
) can be set up by two settings:
Settings-> General -> Other -> Highlight modified lines in gutter
Settings -> Version Control -> Changelists -> Track changed blocks in text files separately
After that, you will be able to move code blocks to different change-lists or de-select blocks from the commit
PyCharm manages this through change lists. Here is an example.
- We create a new change list from an existing one (one that we've already created, or the default changelist).
- We make a couple of changes and hit
VCS
->Commit Changes
- In the diagram below at
{1}
, you can see that the changelist is set toDefault
, and in{2}
you can see the actual change. Right click on{2}
and select the change.
Now, say we want to commit only this change. We can do this by adding it to a new changelist, by clicking on {3}
, and this will pop up:
Since we don't have a new one, let's just create a new changelist using the dialog box. And then let's change the currently selected changelist to New Changelist
:
Notice that there is only one file, with one change, just like our changelist. How about we add a few things from the default
changelist to the new one:
Now, let's head back to the New Changelist
:
Now that we're done with our selective changes, press Commit
. After this, we can push:
I pushed to bitbucket, so let's see the changes:
As you can see, only the stuff in the New Changelist
was added.