I thought I'd share some new understanding of git I just learned today.
With the Qt builds, we maintain a set of patches ontop of the qt5 repository that pertain to the Jenkins build pipeline / automated builds. Every time we move from Qt version to Qt version, those changes need to be moved to a new branch based off the new Qt release. For instance we had a branch called adsk-maya-contrib-v5.12.5, based off Qt tag v5.12.5. We moved to v5.15.2, and created an adsk-maya-contrib-v5.15.2 branch. All the script changes we made needed to be moved over to this new branch. In the past we've just squashed all those changes into a single commit and cherry-picked that commit or just manually copied the files over into the new branch. I never liked that because you couldn't easily follow the history of edits - I find it extremely useful to use git blame to get into the head of the developer when there's a bug - why was the change made in the first place? Anyway -- I much prefer just transplanting the commit