{ "uuid": [ { "value": "6392bc3e-4431-444a-acb7-ef1abc7fec4f" } ], "langcode": [ { "value": "en" } ], "type": [ { "target_id": "daily_email", "target_type": "node_type", "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" } ], "revision_timestamp": [ { "value": "2025-04-16T14:12:59+00:00" } ], "revision_uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "revision_log": [], "status": [ { "value": true } ], "uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "title": [ { "value": "Interactive staging" } ], "created": [ { "value": "2024-05-06T00:00:00+00:00" } ], "changed": [ { "value": "2025-04-16T14:12:59+00:00" } ], "promote": [ { "value": false } ], "sticky": [ { "value": false } ], "default_langcode": [ { "value": true } ], "revision_translation_affected": [ { "value": true } ], "path": [ { "alias": "\/daily\/2024\/05\/06\/interactive-staging", "langcode": "en" } ], "body": [ { "value": "\n

A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed.<\/p>\n\n

There's git add -i<\/code> to interactively add, though I usually go straight to git add -p<\/code> to use patch<\/code>.<\/p>\n\n

This will ask you to confirm if you want to add each hunk to the commit (a.k.a. the staging area) or not.<\/p>\n\n

For example, here's the prompt I get whilst working on the post for this email:<\/p>\n\n

diff --git a\/source\/_daily_emails\/2024-05-06.md b\/source\/_daily_emails\/2024-05-06.md\nindex 42fe48f..ef36a2b 100644\n--- a\/source\/_daily_emails\/2024-05-06.md\n+++ b\/source\/_daily_emails\/2024-05-06.md\n@@ -4,10 +4,12 @@ date: 2024-05-06\n permalink: daily\/2024\/05\/06\/interactive-staging\n tags:\n   - software-development\n-    # - drupal\n-    # - php\n-    # - podcast\n+    - git\n cta: ~\n snippet: |\n   TODO\n ---\n+\n+A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed.\n+\n+There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`.\n+There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`.\n(1\/1) Stage this hunk [y,n,q,a,d,s,e,?]?\n<\/code><\/pre>\n\n

I can add the whole hunk, split it into smaller hunks, add all the hunks in the file or ignore this hunk and later hunks in the file.<\/p>\n\n

Then the process is repeated for any following hunks.<\/p>\n\n

This means I can add the relevant hunks to craft the commit I want and I can keep my commits small and meaningful, and easy to revert if there is an issue.<\/p>\n\n ", "format": "full_html", "processed": "\n

A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed.<\/p>\n\n

There's git add -i<\/code> to interactively add, though I usually go straight to git add -p<\/code> to use patch<\/code>.<\/p>\n\n

This will ask you to confirm if you want to add each hunk to the commit (a.k.a. the staging area) or not.<\/p>\n\n

For example, here's the prompt I get whilst working on the post for this email:<\/p>\n\n

diff --git a\/source\/_daily_emails\/2024-05-06.md b\/source\/_daily_emails\/2024-05-06.md\nindex 42fe48f..ef36a2b 100644\n--- a\/source\/_daily_emails\/2024-05-06.md\n+++ b\/source\/_daily_emails\/2024-05-06.md\n@@ -4,10 +4,12 @@ date: 2024-05-06\n permalink: daily\/2024\/05\/06\/interactive-staging\n tags:\n   - software-development\n-    # - drupal\n-    # - php\n-    # - podcast\n+    - git\n cta: ~\n snippet: |\n   TODO\n ---\n+\n+A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed.\n+\n+There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`.\n+There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`.\n(1\/1) Stage this hunk [y,n,q,a,d,s,e,?]?\n<\/code><\/pre>\n\n

I can add the whole hunk, split it into smaller hunks, add all the hunks in the file or ignore this hunk and later hunks in the file.<\/p>\n\n

Then the process is repeated for any following hunks.<\/p>\n\n

This means I can add the relevant hunks to craft the commit I want and I can keep my commits small and meaningful, and easy to revert if there is an issue.<\/p>\n\n ", "summary": null } ], "feeds_item": [ { "imported": "2025-04-16T14:12:59+00:00", "guid": null, "hash": "4f660d322ca2ed3306e781c6c10053a1", "target_type": "feeds_feed", "target_uuid": "90c85284-7ca8-4074-9178-97ff8384fe76" } ] }