@jb55 I use magit in emacs and it changed the way I use git totally. It has all these stuff. Incremental/selective staging of hunks is just a matter of selecting the parts from the diff and staging them. It is by far the best UI I have ever used for git.
Bitcoin Maston Instance