greg0ire greg0ire - 1 year ago 52
Git Question

Can I split an already split hunk with git?

I've recently discovered git's

option to the
command, and I must say it really is a fantastic feature.
I also discovered that a large hunk could be split into smaller hunks by hitting the s key, which adds to the precision of the commit.
But what if I want even more precision, if the split hunk is not small enough?

For example, consider this already split hunk:

@@ -34,12 +34,7 @@
width: 440px;

-/*#field_teacher_id {
- display: block;
-} */
-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {
+#user-register form.table-form .field-type-checkbox label {
width: 300px;

How can I add the CSS comment removal only to the next commit ? The
option is not available anymore!

Answer Source

If you're using git add -p and even after splitting with s, you don't have a small enough change, you can use e to edit the patch directly.

This can be a little confusing, but if you carefully follow the instructions in the editor window that will be opened up after pressing e then you'll be fine. In the case you've quoted, you would want to replace the - with a space at the beginning of these lines:

-form.table-form #field_teacher + label,
-form.table-form #field_producer_distributor + label {

... and delete the the following line, i.e. the one that begins with +. If you then save and exit your editor, just the removal of the CSS comment will be staged.