top | item 5667606

Git? tig

499 points| stefans | 13 years ago |blogs.atlassian.com | reply

110 comments

order
[+] kylec|13 years ago|reply
There seems to be some confusion here in the comments. Atlassian did not make tig, Jonas Fonseca (https://github.com/jonas) did. In some sense though, it makes Atlassian even more awesome that they wrote a blog post about a piece of software they didn't create.
[+] abusch|13 years ago|reply
Absolutely, all praise should go to Jonas for this great tool! I am merely a happy user sharing my experience.
[+] terhechte|13 years ago|reply
Atlassian, ironically, are the vendors of one of the best Git Gui tools for Mac OS X, 'SourceTree': http://sourcetreeapp.com
[+] jasonlotito|13 years ago|reply
I noticed that as well. If anything, it earns my respect. It shows that Atlassian, and the developers behind their products, realize that everyone has different needs. That a single tool can't solve everything for everyone. I also think it means that the tools they do build will be better, because instead of trying to include the kitchen sink, each tool has an opinion on how to best achieve what it's trying to achieve.
[+] kawsper|13 years ago|reply
I use Tower ( http://www.git-tower.com/ ) and love is so much that I have bought my own license. But I hit usability issues from time to time.

I will give SourceTree a try, it looks interesting.

[+] brown9-2|13 years ago|reply
To be fair, they acquired SourceTree in late 2011 and IIRC the app prior to the acquisition looked pretty similar to how it looks today.
[+] vacri|13 years ago|reply
Sourcetree doesn't appear to have a linux version.
[+] wiremine|13 years ago|reply
Looks cool! One little nitpick: "Vim to your Emacs"... Er, maybe Vim to your Eclipse. I don't know if I'd put Emacs in the same camp as Firefox or (heaven forbid) Outlook.

Also, here's the manual: http://jonas.nitro.dk/tig/manual.html

[+] cbsmith|13 years ago|reply
Someone needs to check out magit... https://github.com/magit/magit
[+] ozataman|13 years ago|reply
I've pretty much forgotten how to use git on the command line because of magit :-)
[+] justinhj|13 years ago|reply
I love magit. I think magit-status is probably the most used command in my emacs log. Or at least the most used buffer. What I like most is that it doesn't try to simplify or hide git's workflow too much like some other gui's do.
[+] thurn|13 years ago|reply
Sadly it's prone to freeze your Emacs on a bit repo. It seems to assume that "git status" won't take 10 seconds to return.
[+] leephillips|13 years ago|reply
The description of the status display is almost exactly what happens when you type ":Gstatus" while you are editing a file under a git repository in vim, if you have the fugitive plugin installed. If you use vim, you might be interested in this - there is some extra smoothness you get when you don't have to leave your editor.
[+] homosaur|13 years ago|reply
Nice, Atlassian continues to make my job much much easier in regards to Git. I love the work they've done on SourceTree, which was a promising and pretty app but very unstable before they bought it. It was hard to use it for critical work because it was crashing quite frequently. Now it's rock solid and I use it almost every day. I do know most of the command line tools but I like using a GUI because it makes my repo better when I have a visual overview of everything that's going on. It helps me group commits in logical order and I've reduced the amount of basically meaningless fixes and style commits greatly.

I'd never even heard of Tig but I am already in love after about 5 minutes of usage. I'm comfortable with the Git CL and if you toss Git log enough flags, it gives you a very nice printout, but you can't actually DO anything there. This is a nice solution when you're working on a remote server but I'd also bet that if SourceTree is not open, I'm going to find myself more and more dropping into Tig rather than using SourceTree.

[+] dinduks|13 years ago|reply
For those who want to stick to the CLI and have a beautiful history log, you may be interested in these two aliases: https://github.com/Dinduks/dotfiles/blob/master/.gitconfig#L...

Otherwise, tig is neat. I personally won't have to do `git lga` + copy commit's SHA1 + `git show COPIED_SHA1` anymore.

The thing it lacks imo, is more VI-style shortcuts (such as "gg" and "G"), displaying the SHA1 of each commit, and a feature to copy the hash of a specific commit.

[+] micampe|13 years ago|reply
I suggest you put a new section in your .gitconfig

  [pretty]
    whatever = "tformat:%Cred%h%Creset -%C(yellow)%d %Creset%s %Cgreen(%an %cr)%Creset"
and then:

  --pretty=whatever
[+] npongratz|13 years ago|reply
Author mentions tig is available for Homebrew, which is great. Happily it is available for MacPorts, and installed successfully for me on OS X 10.6.8:

  port install tig
https://trac.macports.org/browser/trunk/dports/devel/tig/Por...
[+] RBerenguel|13 years ago|reply
Fellow Mac user here... Have you tried homebrew? I had been using MacPorts until someone told me "Homebrew is far faster." And indeed, installing something on MP takes me ages, while on homebrew it's a matter of seconds
[+] josx|13 years ago|reply
Slightly off-topic, but is there a particular reason you prefer MacPorts to Homebrew?
[+] daigoba66|13 years ago|reply
Honest question: what is wrong with the built-in gitk and git-gui?
[+] moreati|13 years ago|reply
Most likely answer: they don't work in a text-only environment e.g. an ssh session
[+] pluies|13 years ago|reply
FTFA:

No fussing around with your mouse, or alt-tabbing to another window, or waiting for a JVM to start. It’s there at your fingertips whenever you need it. It literally loads the 50,000 commits of the JIRA codebase in a fraction of a second.

And:

In short, it is the mutt to your Outlook, the Vim to your Emacs, the w3m to your Firefox.

[+] doki_pen|13 years ago|reply
The author doesn't like that it is written in tcl/tk. I have no idea how this would matter at all unless he plans on modifying the source. I happen to like gitk and use it often. What language it's implemented is of little concern to me. At one time I used tig(it is pretty old at this point), but it never really caught on for me. Perhaps I didn't give it enough of a chane, perhaps it's much better now.
[+] andrewflnr|13 years ago|reply
In my experience, gitk and other TCL/Tk apps are pretty ugly. That might be enough for some people. Doesn't stop me.
[+] Millennium|13 years ago|reply
If the article is any indication, the problem is that it's written in Tcl/Tk. Sounds like language-zealotry to me.
[+] tiziano88|13 years ago|reply
For one, they do not work when ssh-ing into a remote machine.
[+] etherealG|13 years ago|reply
on osx, speed. both those tools are quite slow to fire up compared to tig. other gui alternatives are even worse.
[+] oneandoneis2|13 years ago|reply
..or an alias for "git log --graph --abbrev-commit --pretty=oneline --all"
[+] gpeal|13 years ago|reply
Is there any reason SmartGit doesn't get more love? I've been using it for over a year now and much prefer it over every other git client I've ever used (and I've tried a lot) http://www.syntevo.com/smartgithg/index.html
[+] sethrin|13 years ago|reply
I haven't tried most of the alternatives mentioned on this page. I primarily use: [a] the command line. [b] git gui, (occasionally) for reviewing commits. [c] meld, for all merge and diff-related tasks. [d] gitk, pretty much only for viewing the history of a specific file. [e] SmartGit, for cherry-picking and anything more complicated than my memory can handle.

There are very few times that I would not prefer using a GUI, when the alternative would be typing all or part of a hash. The hash is for machine consumption, not human consumption: let the machine deal with it. To that particular end, I have found SmartGit to be excellent, and would recommend it.

Re: complaints about GUI tools: Someone is going to have to tell me why you would be using git via a remote ssh session instead of having a local copy. I am sure there is a logical scenario for that.

[+] diego_moita|13 years ago|reply
I guess it is just because people don't know it. I agree it is as powerful as git itself and very intuitive.
[+] desireco42|13 years ago|reply
I am using tig all the time, really convenient, I share sentiment of the author, command line is most convenient. I do use Vim and awesome Tim Pope Fugitive for blame and such operations. I am glad this information is publicized.
[+] kleiba|13 years ago|reply
Or worse: they’re written in Tcl/Tk…

What's wrong with that?

it is the mutt to your Outlook, the Vim to your Emacs, the w3m to your Firefox.

Not sure I can follow?!

[+] bstpierre|13 years ago|reply
> What's wrong with [Tcl/Tk]?

Not speaking for the author, but Tcl/Tk apps tend to be ugly. I use gitk from time to time, but it's ugly and has some usability problems.

> Not sure I can follow?!

Mutt is a terminal-based MUA. Where Outlook is a giant monstrosity of a mail client, mutt is fast and tiny.

Vim is [can be] a terminal-based text editor. The claim here is that emacs is big, ugly, and slow and vim is smaller & faster.

w3m is a terminal-based browser. In comparison, firefox is a slow, giant, memory sucking graphical browser.

[+] Newky|13 years ago|reply
Have used it for over a year at this stage, and did not realize the full potential until this article.

I have been using it as a direct replacement for git log, and its something that gets installed on any system I work on for any length of time.

[+] a3n|13 years ago|reply
Any time I install git, I install tig immediately after.
[+] deepak-kumar|13 years ago|reply
Cool. Makes life easy. Accessing all info on command line is awesome. History/Diff view is best thing about it. Thanks for sharing. I see myself using it on daily basis.
[+] rjzzleep|13 years ago|reply
i too like the fact that the makers of sourcetree write about it.

I've been using tig since the very first version. I have tried to find something similar for mercurial without luck. it's probably one of the main reasons why i prefer git over mercurial (usability wise anyway)

[+] girvo|13 years ago|reply
Oh, I was looking for something like this today. Gitk is all well and good, but I have a whole heap of commands all tied into a custom Menu for Komodo Edit. I hope `tig' can work in it's output pane: it'll be a lifesaver if it does!
[+] btucker|13 years ago|reply
If you're on a Mac with homebrew installed:

    $ brew install tig
[+] pyxy|13 years ago|reply
How to make tig absolutely monochrome? Didn't find an option, is the only way to set EVERY area like `color area white black`?

It's just burning my eyes with blue and magenta colors :)

[+] pyxy|13 years ago|reply
Also is there any support mailing list or forum instead of mailing directly Jonas?