7

I want a tortoisegit like program in linux that can do the following:

  • Popup a dialog if I right click a folder or file in a file system treeview and chose a menu item in the resulting context menu. If I popup a commit dialog, I want to see a list of all changes and all unstaged files. Those should be sortable with respect of modification time in descending order. Each file should have a checkbox so I can choose which file to include in a commit. If I double click a file, I get the diff view of the changes for that file.
  • Diffs views of text files consist of a side by side view with "theirs" and "mine", with a full listing in each side, marking lines that will be both removed or added. A "gutter" between the two textviews visualizes which lines in the left view that corresponds with lines in the right view. If there is a conflict, the gutter will show that marking a portion as red. The textviews scrolls down to the first change when the diff view pops up. A key press will take the user to the next diff. In this view, the user can chose to either undo an add or a removal by clicking areas that are marked as changes. Text can also be entered freely in the right view (mine).
  • Have "restore after commit", meaning that I can take a snapshot of a file by marking it as "restore after commit" in the commit dialog. Then, in the diff view, I click some changed areas to undo some of the changes, but after the commit, the file is restored to the contents of the snapshot so the next time I commit the file, I can commit the changes I did not commit the previous time.

Note: I have tried gitkraken before, and one of the downsides it has accounts. Why would I want to have a git client account? The visualization is really cool, but there are no file system views, there are no checkboxes for changed files, it seems to only sort on filename, not modification time, the diff view is using diff syntax instead of a side by side view. I have found no "restore after commit" function.

1
  • 1
    There's another under-appreciated feature of TortoiseGit that (AFAIK) nothing else can do, viewing the commit history of a branch that isn't currently checked out. I know I could clone the repo again, and checkout, and then open up one log in one directory and another log in another directory, but it's very convenient to just be able to click a different branch to look at something without needing to replace the branch I'm on or clone a new directory.
    – jrh
    Jan 12 at 21:06
3

Besides mastering git bash CLI as reddit suggested, probably GitKraken (GK) is worth taking a look at.

I personally switched to Visual Studio Code with a couple of extensions (1, 2, 3). GK is just an overkill for me as I primarily manage just my own little projects. For the reference, I work about 75%of the time on Windows and 25% on Manjaro, so my answer can be somewhat biased.

4
  • 4
    I have tried gitkraken before, and one of the downsides it has accounts. Why would I want to have a git client account? The visualization is really cool, but there are no file system views, there are no checkboxes for changed files, it seems to only sort on filename, not modification time, the diff view is using diff syntax instead of a side by side view. I have found no "restore after commit" function. Jul 7 '17 at 7:53
  • 3
    @AndersLindén true, their requirement for an account is ridiculous, even though they accept GitHub accounts too (which raises other questions though). Unfortunately I don't know any other clients for Linux which comes closer in functionality of TortoiseGit other than GK. It just seems like people are happy with git bash functionality.
    – andselisk
    Jul 7 '17 at 7:57
  • I don't know of a slick way to use the CLI to 1) compare changes between different branches, quickly (VSCode can't really do this either, and no UI I've seen can except TG), 2) locate a commit among tens of thousands (potentially years ago) quickly and get a diff between two commits that might be a hundred commits apart (I'd have to set my console font to like 8 or something) Like the OP, I quite like the icon changes in Explorer, it's nice to browse folders and look for accidentally added files / changed files. More convenient than git status.
    – jrh
    Jan 12 at 21:12
  • Also not everything in the CLI is wonderful, git checkout -b <branch name> origin/<branch name> is kinda clunky CLI design, git checkout <some file> to revert changes is for me not as good as using a UI even if I use tab completion and I type very fast, especially if I want to revert a bunch of files. I also have to look up the command for changing the remote URL every time, it's git remote set-url origin <new url>. I always think it's git set origin or git remote set origin or some other variant like that.
    – jrh
    Jan 12 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.