Theis issue is about Git-Gui Version 2.11.0.windows.1 while this was working in the previous 2.10 version. This is quite annoying since when there are many files, one should stage them one by one instead of many of them using the windows ctrl/maj key. Thus I had to reinstall the 2.10.2 version.
Z:\git\SPLC>git --version --build-options
git version 2.11.0.windows.1
sizeof-long: 4
machine: x86_64
Z:\git\SPLC> cmd.exe /c ver
Microsoft Windows [version 6.1.7601]
# One of the following:
Z:\git\SPLC> type "C:\Program Files\Git\etc\install-options.txt"
Path Option: Cmd
SSH Option: OpenSSH
CRLF Option: CRLFAlways
Bash Terminal Option: ConHost
Performance Tweaks FSCache: Enabled
Use Credential Manager: Enabled
Enable Symlinks: Disabled
Enable Builtin Difftool: Disabled
Any other interesting things about your environment that might be related
to the issue you're seeing?
_TODO_
Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other
cmd.exe
What commands did you run to trigger this issue? If you can provide a
Minimal, Complete, and Verifiable example
this will help us understand the issue.
In the Unstaged Changes panel, select more than one lines, then press <ctrl><T> to stage all selected files.
What did you expect to occur after running these commands?
_All selected lines should be staged_
What actually happened instead?
_Only one file is staged._
If the problem was occurring with a specific repository, can you provide the
URL to that repository to help us with testing?
_not relevant_
I suspect that this is not a Windows-specific issue, but have currently no chance to follow up on that hunch.
Maybe report it to the Git mailing list would make this issue resolved quicker.
Can confirm this issue
This has been driving me nuts. Thanks for logging the issue.
What is the Gui version ? - the 'help>about' will give the git version, gui version and tcl version, etc.
The crtl / shift _selection_ works on my hack ubuntu laptop (an old XP DELL Lattitude D620 - works well! - try it if you have an old defunkt laptop), so it's not looking like an upstream issue, though I may not have tried a sufficient test (is it just the selection that is needed to demo the issue?)
[my sys: Gui 0.2.0.0.44.gccc98; git 2.11.0.2.28.gde2efeb; tcl 8.6.5; Aspell 0.60.7-20110707.en_GB]
What does work? Do the ctrl / shft keys work (at all) in the other panes, or are they globally disabled (which could suggest an msys2 issue).
Also have you tried the https://github.com/git-for-windows/git/releases/tag/v2.11.1.windows-prerelease.1 just in case it is releated (bad special character processing...)
I have git-gui version 0.21.GITGUI
git version 2.11.0.windows.1
Tcl/Tk version 8.6.6
I am on Windows 7.
My workflow is this in either the unstaged or staged window panes:

That (only a single file from those selected being transfered) appears to be the same action I see on my Ubuntu box.
Maybe a tcl change is part of the issue, dunno.
I also remember another comment about a similar issue moderately recently (https://github.com/git-for-windows/git/issues/572) - No, it was about a slightly different issue
I have git-gui version 0.21.GITGUI
git version 2.11.0.windows.1
Tcl/Tk version 8.6.6
My workflow is this in either the unstaged or staged window panes:
1.. click file
2.. shift + click several files away (to select the range)
3.. ctrl + t (in unstaged pane) / ctrl + u (in staged pane) only does the
action on the first selected file in step 1
Win 7 64b and Win 10 64b here. Latest git for windows (git gui 0.21/git 2.11.0.windows.1).
As far as I can tell this got broken with the most recent update of git for windows.
For now I use git gui the shortcut ctrl+I to add all, and unstage the undesired, or use git bash with git add *.ext (or more specific) to add the desired ones.
The latest version that works well displayed below

Jut cloned the git-gui repo as per the man page git clone http://repo.or.cz/r/git-gui.git.
http://repo.or.cz/git-gui.git/commit/088ad75dc279614849f92e5ae0a2b579b26719eb
```
Author: Pat Thoyts patthoyts@users.sourceforge.net 2016-10-01 22:04:39
Allow keyboard control to work in the staging widgets.
Keyboard focus was restricted to the commit message widget and users were
forced to use the mouse to select files in the workdir widget and only then
could use a key combination to stage the file.
It is now possible to use key navigation (Ctrl-Tab, arrow keys and Ctrl-T
or Ctrl-U) to stage and unstage files.
Suggested by @koppor in git-for-window/git issue #859
Signed-off-by: Pat Thoyts <[email protected]>
```
This one has a look of being relevant and in the right time frame.
git-for-window/git issue #859 was referenced in that commit message, and lo and behold
https://github.com/git-for-windows/git/issues/859#issuecomment-265690346
However, Ctrl + T does not work on multiple entries anymore. Think, I have to submit another issue... 馃幈
Same broken behaviour for the Staged Changes to unstage them (ctrl-u).
I did not submit an issue for Ctrl + T yet. May I do it here?
git-gui version 0.21.GITGUI
git version 2.11.1.windows.1
Tcl/Tk version 8.6.6

Hi,
I have this issue for a while on windows.
A workaroud I used to fix this is to edit the file: /mingw64/libexec/git-core/git-gui.tcl
and replace the lines starting from 3855
bind . <$M1B-Key-t> { toggle_or_diff toggle %W }
bind . <$M1B-Key-T> { toggle_or_diff toggle %W }
bind . <$M1B-Key-u> { toggle_or_diff toggle %W }
bind . <$M1B-Key-U> { toggle_or_diff toggle %W }
by
bind . <$M1B-Key-t> do_add_selection
bind . <$M1B-Key-T> do_add_selection
bind . <$M1B-Key-u> do_unstage_selection
bind . <$M1B-Key-U> do_unstage_selection
not sure about all sides effects of this change but it works for me :)
----- Original Message -----
From: daniel-da
To: git-for-windows/git
Cc: Philip Oakley ; Comment
Sent: Wednesday, May 10, 2017 12:29 PM
Subject: Re: [git-for-windows/git] critical: git-gui for Windows: multiple selections in the unstaged change panel not honored (#1012)
Hi,
I have this issue for a while on windows.
A workaroud I used to fix this is to edit the file: /mingw64/libexec/git-core/git-gui.tcl
and replace the lines starting from 3855
bind . <$M1B-Key-t> { toggle_or_diff toggle %W }
bind . <$M1B-Key-T> { toggle_or_diff toggle %W }
bind . <$M1B-Key-u> { toggle_or_diff toggle %W }
bind . <$M1B-Key-U> { toggle_or_diff toggle %W }
by
bind . <$M1B-Key-t> do_add_selection
bind . <$M1B-Key-T> do_add_selection
bind . <$M1B-Key-u> do_unstage_selection
bind . <$M1B-Key-U> do_unstage_selection
not sure about all sides effects of this change but it works for me :)
--
My only thought was whether the { } bracketting should be still present? That is, I know those squiggly brackets mean something with regard to the point of evaluation/interpretation but I can't remember...
Simailarly I'd then be wondering what the %W parameter was hoping to do and if it (or something similar) may be required if the functions were bound somewhere else.
Philip
@PhilipOakley did you know that your replies are not visible in GitHub's UI unless one clicks the ... at the bottom? Highly confusing. Also, the mail headers are a bit distracting...
@PhilipOakley did you know that your replies are not visible in GitHub's UI unless one clicks the ... at the bottom? Highly confusing. Also, the mail headers are a bit distracting...
Yeah, the round trip interfacing is not ideal. I have difficulty because of the MS style 'top post reply' to the messages, and I can't seem to get a clean method for replying to the emails in my old email client.
Not sure if there are any better Github settings for how they send emails, or more info on how they parse emails (so when I bottom post my text doesn't get hidden below a three dots!).
Even when one does a copy paste in the web interface the formatting doesn't always come across.
My only thought was whether the { } bracketting should be still present? That is, I know those squiggly brackets mean something with regard to the point of evaluation/interpretation but I can't remember... Simailarly I'd then be wondering what the %W parameter was hoping to do and if it (or something similar) may be required if the functions were bound somewhere else.
The bracketing is necessary only when passing options such as %W.
As to the change, I think it is a good start of an investigation, for sure.
It is not a complete solution, obviously, as part of the Ctrl+T functionality is to unstage files when the focus is on the lower left list. Quite naturally, the do_add_selection function wants to only stage the files.
Please update this issue when a git-for-windows version with this fix is released, I'm (and presumably others) keeping their git version hold back for this painful Issue
To be quite honest, the patch is really a patch, i.e. it is not really a fix. The entire toggle_or_diff function would need some tender loving care, but it is quite obvious by now that those who need Git GUI fixes are pretty willing to bank on others to provide those fixes, rather than go and learn Tcl/Tk and make those fixes and open Pull Requests. So just a patch is whatcha get.
Please update this issue when a git-for-windows version with this fix is released, I'm (and presumably others) are keeping their git version hold back for this painful Issue
Thanks for asking me to do even more.
Do you think it really, really unreasonable for you to keep an eye out and update this ticket? Do I really have to do all of this by myself?
Sorry.. this was not aimed directly towards you, it was meant to send a notifications to subscribers
I am sure everybody in this Issue appreciate what you are doing, as you mentioned not many programmers are fluent with Tcl/Tk on github, and this is a really key piece of software
@colthreepv can you test the newest snapshot from https://wingit.blob.core.windows.net/files/index.html?
Multi stage/unstage on git-gui works for me with that snapshot 馃憤
$ git --version --build-options
git version 2.13.0.windows.1.17.g759b4f1c8e
built from commit: 759b4f1c8ed03e6e9cdfc028b47235539f1eadb0
sizeof-long: 4
machine: x86_64
@colthreepv thanks for testing!
Please update this issue when a git-for-windows version with this fix is released, I'm (and presumably others) keeping their git version hold back for this painful Issue
This fix has been released with version 2.13.1
@colthreepv thanks for keeping track! It is very helpful.
Sent upstream: https://public-inbox.org/git/[email protected]/
Most helpful comment
git-for-window/git issue #859 was referenced in that commit message, and lo and behold
https://github.com/git-for-windows/git/issues/859#issuecomment-265690346