Re: [PATCH] RFC - Say goodbye to the rodent
From: Matthieu Moy <hidden>
Date: 2016-06-15 22:47:09
Nazri Ramliy [off-list ref] writes:
Oftentimes I get tired of moving my hand away from the comfort of the home rows of my keybard in order to grab the mouse to highlight the files that I'd like to operate on.
Usually, when you cut-and-paste from $(git status), it's to run a staging/unstaging command, or to view a diff. Actually, "git add -i" is already a pretty good way of doing this, with few keystrokes.
Example: $ git status --id # On branch local # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: builtin-write-tree.c (m1) # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # file1.c (x1) # file2.c (x2)
$ git add -i
staged unstaged path
1: unchanged +1/-0 builtin-write-tree.c
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
Now we can do the following: $ git add --id m1
What now> u
staged unstaged path
1: unchanged +1/-0 [b]uiltin-write-tree.c
Update>> 1
staged unstaged path
* 1: unchanged +1/-0 [b]uiltin-write-tree.c
Update>>
updated one path
*** Commands ***
1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked
5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp
Ids are specified via the --id command line option, and can be separated with commas if you want to specify more than one of them: $ git add --id m1,x2
What now> a 1: file1.c 2: file2.c Add untracked>> 1 * 1: file1.c 2: file2.c Add untracked>> 2 * 1: file1.c * 2: file2.c Add untracked>> added 2 paths for these examples, I have far fewer keystrokes with "git add -i" than you have. I don't think it's worth adding yet-another-option to most Git commands since it doesn't really bring much IMHO. -- Matthieu