People are familiar with Draft (email or blog) state and Send or Publish state. I would go with email analogy. So I would describe commit similar to sending an email after drafting in a thread. Here I also could undo anytime and make it a draft. Similar to forward I can clone a thread (branch out?).