diff --git a/source/_daily_emails/2024-05-06.md b/source/_daily_emails/2024-05-06.md new file mode 100644 index 000000000..0069f3b74 --- /dev/null +++ b/source/_daily_emails/2024-05-06.md @@ -0,0 +1,50 @@ +--- +title: Interactive staging +date: 2024-05-06 +permalink: archive/2024/05/06/interactive-staging +tags: + - software-development + - git +cta: ~ +snippet: | + TODO +--- + +A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed. + +There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`. + +This will ask you to confirm if you want to add each hunk to the commit (a.k.a. the staging area) or not. + +For example, here's the prompt I get whilst working on the post for this email: + +```shell +diff --git a/source/_daily_emails/2024-05-06.md b/source/_daily_emails/2024-05-06.md +index 42fe48f..ef36a2b 100644 +--- a/source/_daily_emails/2024-05-06.md ++++ b/source/_daily_emails/2024-05-06.md +@@ -4,10 +4,12 @@ date: 2024-05-06 + permalink: archive/2024/05/06/interactive-staging + tags: + - software-development +- # - drupal +- # - php +- # - podcast ++ - git + cta: ~ + snippet: | + TODO + --- ++ ++A major addition to my Git workflow has been the ability to interactively add hunks of code to be committed. ++ ++There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`. ++There's `git add -i` to interactively add, though I usually go straight to `git add -p` to use `patch`. +(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? +``` + +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. + +Then the process is repeated for any following hunks. + +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.