code: func NewCommitPostorderIter(c *Commit, ignore []plumbing.Hash) CommitIter {
  	seen := make(map[plumbing.Hash]bool)
  	for _, h := range ignore {
  		seen[h] = true
  	}
  
  	return &commitPostIterator{
  		stack: []*Commit{c},
  		seen:  seen,
  	}
  }
docs: // NewCommitPostorderIter returns a CommitIter that walks the commit
  // history like WalkCommitHistory but in post-order. This means that after
  // walking a merge commit, the merged commit will be walked before the base
  // it was merged on. This can be useful if you wish to see the history in
  // chronological order. Ignore allows to skip some commits from being iterated.