How to commit a partial file (hunks) to gi

2019-03-22 19:08发布

I'm a heavy Eclipse PyDev + EGit user and looking to switch to PyCharm. In Eclipse, I can choose to add only certain hunks/lines of a file to the git index, the same as using git add -p from the terminal. I find doing it through a GUI to be faster, and I have been looking for the same functionality in PyCharm. Does it exist? Thanks

标签: git pycharm
4条回答
戒情不戒烟
2楼-- · 2019-03-22 20:07

Since Pycharm 2018 partial commit (similar to git add -p) can be set up by two settings:

  1. Settings-> General -> Other -> Highlight modified lines in gutter enter image description here

  2. Settings -> Version Control -> Changelists -> Track changed blocks in text files separately enter image description here

  3. After that, you will be able to move code blocks to different change-lists or de-select blocks from the commit

enter image description here enter image description here

查看更多
老娘就宠你
3楼-- · 2019-03-22 20:08

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.

查看更多
放荡不羁爱自由
4楼-- · 2019-03-22 20:11

This is a late comment, but may be helpful to some.

  1. PyCharm has this issue open. This issue, and its duplicates, has been open since at least 2012. Don't hold your breath.

  2. Putting changes in file by file is trivial, just by clicking boxes.

  3. On OS/X, use the GitHub Desktop tool for those cases where you want fine grain commits. It has the correct 'click and drag over blocks of line' interface for this.

查看更多
▲ chillily
5楼-- · 2019-03-22 20:14

PyCharm manages this through change lists. Here is an example.

  1. We create a new change list from an existing one (one that we've already created, or the default changelist).
  2. We make a couple of changes and hit VCS -> Commit Changes
  3. In the diagram below at {1}, you can see that the changelist is set to Default, and in {2} you can see the actual change. Right click on {2} and select the change.

enter image description here

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:

enter image description here

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:

enter image description here

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:

enter image description here

Now, let's head back to the New Changelist:

enter image description here

Now that we're done with our selective changes, press Commit. After this, we can push:

enter image description here

I pushed to bitbucket, so let's see the changes:

enter image description here

As you can see, only the stuff in the New Changelist was added.

查看更多
登录 后发表回答