Be careful rewriting history
The end result you want might be possible if you create branches for each author, cherry-pick the commits from each author into the right branch, then squash those changes. However, I don't think that will work if these commits meaningfully depend on each other.
If you have a series of commits:
Author1 Author2 Author1
version1 ---commit---> version2 ---commit---> version3 ---commit--->...
If you were to try to extract the changes from Author2, and apply them to version1, there's a good chance it won't make sense (For example, if Author2 modifies code that Author1 created).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…