One Git commit from feature/branch to master

Using git, I sometimes sense pressure to make a meaningful, ever-lasting commit message. Am I using the appropriate level of detail when making commit messages? Is a WIP (Work in Progress) commit dirtying up git history? Any cognitive tension becomes a small friction to committing and sharing code.

Commit often, early, and freely in feature branches. Communicate with your team, and when it comes time to finalize a Pull Request, rest as ease, knowing you can cleanup your history with a clean diff of code.

Many developers I work with love to use rebase, and I've used it quite a bit myself. Though, I've also seen a handful of times where commits mysteriously vanish (due to team coordination and branch management, not due to any flaw of Git).

I'm starting to the following method a bit more when I'm ready to finalize a Pull Request from a feature branch that has several commits that I'd prefer to commit as one.

Generate a diff between 2 git branches

git diff branch_name_from branch_name_to --binary > name_of_diff.diff

Notice the use the --binary flag if you have files, like images or pdfs.

Then, create a new branch off of branch_name_from - for instance:

git checkout -b master new_branch_name

then with new_branch_name checked out, apply the diff

git apply name_of_diff.diff

Now, you'll have one clean commit, based on the diff between two branches.

About Afomi

Afomi is the digital sandbox of Ryan Wold, who is always evolving this to better share inspirations and aspirations.

About Ryan

Ryan is a systems-thinking Product Developer and Designer who practices agile, test-driven, and lean continuous software delivery, while solving problems with people.

Random Posts