I am going to share a new tool called jj
It's a Git-compatible VCS, and the default jj can already gives me this.
jj