We have ticket IDs in the branch names. Also a nice Jira <-> GitLab integration. When branch is merged the ticket status is updated.
The Merge commit also updates the ChangeLog with the `TICKET-XXX - TICKET SUMMARY`.
That makes it really easy to trace things, as you can:
- Look at the ChangeLog
- Do a `git log --first-parent`
- Look at a Jira Ticket and jump straight to the merge commit
We also have policies in that every commit to master must be a merge commit and associated with a Jira Ticket. Also, each branch is tied to one and only one Jira Ticket.