git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Staging commits with visual diff tools?

From
David Aguilar <davvid@gmail.com>
Date
May 31, 2015, 01:59 UTC
Message-ID
<20150531015956.GA64502@gmail.com>
In-Reply-To
<alpine.DEB.2.10.1505262147230.3709@alice>
On Tue, May 26, 2015 at 09:50:49PM +0100, John Lee wrote:
Show 17 quoted lines
> Hi
> 
> Does anybody have code to stage commits using a the visual
> diff/merge tools supported by git-difftool?  Is there support in git
> itself somewhere, even?
> 
> I'm looking for something functionally similar to git add -p
> 
> Looking at the git-difftool source I can see how to write a command
> to do it, but wanted to check if it had already been implemented.
> 
> Did I miss a way that already exists?
> 
> Thanks
> 
> 
> John

If you're interested in existing staging tools then I would highly suggest looking at git-cola.

    https://github.com/git-cola/git-cola
    git clone git://github.com/git-cola/git-cola.git

git-cola is free software so it's pretty unique in many ways. I also wrote it, so that makes it that much more awesome ;-)

cola has a very slick interactive staging editor, interactive rebase, and a whole lot more.

I'm a g/vim user, so git-cola is finely tuned for keyboard usage. If we implement these feature in Git, we should consider providing the same workflows/hotkeys as cola.

For staging, you can select lines, hit "s", and they'll be staged/unstaged. ctrl-u reverts unstaged edits, etc. The '?' hotkey shows the help, etc.

You can get extremely granular, moreso then "add -p", which is why it exists. When cola's diff editor is not sufficient, you can also use it to drive difftool, but only in ways that you can on the command-line already.

git-cola is written in Python(2+3) so it's easy to hack on, and quite portable.

cheers,
-- 
David
Previous: Michael J GruberNext: John Lee
Message 5 of 10 in “Staging commits with visual diff tools?”
  1. John LeeMay 26, 2015
  2. Jeff KingMay 27, 2015
  3. John LeeMay 27, 2015
  4. Michael J GruberMay 29, 2015
  5. David AguilarMay 31, 2015
  6. John LeeMay 31, 2015
  7. David AguilarJun 1, 2015
  8. John LeeJun 1, 2015
  9. John LeeJun 27, 2015
  10. John LeeJun 28, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.