GitKraken: git GUI Client for Windows Mac and Linux
gitkraken.com
gitkraken.com
First thing I tried is dropping a git repo folder to the window, didn't work. When I click the open button I can see the Javascript animation glitching on my 'Early 2015 i5 2.7 Ghz MacBook Pro'.
The commit list UI is kind of alright but it doesn't show you the diff anywhere. So that's not exactly a Git UI, buddy. And this is not open source either, that's a lot of strikes. No thanks.
I've been using the beta(!) for a few weeks and I think it's a promising product. I also don't think software should be completely disqualified for not being open-source (, buddy).
I am not a fan of this layout. It makes it a bit difficult to get a feel for what the changes were in a quick glance.
I gave up on it in under an hour, which is kinda record time for me. I gave SourceTree a couple days, GitX/GitY/etc each got multiple hours, etc.
It hasn't asked me for email (the only email it has is for `user.email` git config)
My team's been using https://rowanj.github.io/gitx/ which has been a godsend - many of the same features, including interactive diff staging and tree view, in a native-feeling Mac interface. But that gitup screencast, how it makes rebasing painless - that's like nothing I've seen before. I'll definitely give gitup a try.
In general, these types of interfaces are VERY useful for junior programmers who aren't used to thinking of Git as a digraph of commits. I'm surprised that they're not used more often in online courses and bootcamps... maybe not enough people know about them yet!
There are a lot of ways to do git. If you frequently find yourself needing a GUI tool to do more than compare diffs (there are a few good ones out there), it's very possible that the way you / your team are using git could itself use some work.
If you're very new to git on teams or even if you're more intermediate, https://www.atlassian.com/git/tutorials/comparing-workflows/... is probably worth a read to understand how this stuff can work nicely for projects. It really shouldn't be rocket surgery to cut a new release :)
GitHub's site is not really convenient for me, the notifications aren't very useful, it generally feels like a clunky way to work.
If GitHub were smarter, they could have become the Slack of development. There's so much room for improvement there.
I wasn't overly impressed by their app (not to say that it's bad, given the overall scarcity of decent GUI options for Git), but I wanted to take a peek... having to provide some email isn't a showstopper at this point
Edit to add: It's particularly strange because I wouldn't depend on this tool in some infrastructural way -- I could switch clients anytime without any lock in. But I'm no longer willing to even try anymore. Odd.
Speaking of which, https://www.axosoft.com/privacy seems to say that the application is allowed to send home virtually unlimited amount of information about your repositories and the work you do in them.
It's beautiful, it speeds up my work day to day, and it's been worth every cent. Open source is great and I spend my days building an open-source mail client, but I have no problem paying for great tools.
An intuitive interface and a simpler layout. I like Tower better for the same reason I like to use a trackpad over a mouse. Day to day, the difference is obvious and positively impacts my performance.
Strange profession, when compared how much some of other professionals pay for their tools.
Mozilla is a clear example of people paid to write FLOSS. I used to work at a foundation that did that too. There's plenty going around.
The product being sold is the service to access online web sites, sell search data to engines and online advertising.
That's more than what I've spend of software (excluding videogames) in the last decade, probably more. It's also more than a weekly rent for me too.
I branch and merge in moments at least a half dozen times a day in Tower. Getting to diffs, creating patches, and viewing changesets are easy and pleasant to look at. It has built I support for a Gitflow workflow so naming conventions and everything allow for one or two clicks to go from no feature branch to a new one.
Frankly, it's just pleasant to use, doesn't screw up my source, and makes it easy to get my code committed and pushed.
So does SourceTree. Have you tried using it? If so, what issues have you found with it? Personally, I don't use it, so I can't speak to its functionality.
> I branch and merge in moments at least a half dozen times a day in Tower.
I do the same in SourceTree, and find it trivial, but perhaps it's just a usage difference. If you want to use Tower go for it -- I have no affiliation with Atlassian to push the product on you, I just enjoy it. I'm just surprised at how much Tower costs.
I don't feel like $70 is very much for something that feeds my family. I use it all day every day and the work I do with it allows my wife to stay home with my kids. If people didn't pay me to build the software that _I_ build, this wouldn't be possible. It's the same reason I choose IntelliJ over Eclipse or other IDEs. If the price difference is justified by my effctiveness with your tool, I'm spending the money without hesitation.
The only caveat I have is, even if your product is the best, if your company is shifty or a bad actor- I'll do whatever I can to avoid it.
1. interactive staging and committing of only part of a local change. git-cola is way better than the command line flow for this
2. gitk's tree viewing and filtering options are nice. i usually end up just using tig for speed of opening, but if there's a large set of changes i want to navigate through i launch gitk. also it's the easiest way i've found to branch at a particular commit.
But lots is still done on the command line. The two aren't mutually exclusive.
Sometimes using the mouse really is more powerful; sometimes it is not. It is important to see that it can sometimes be your friend.
This, for me. I do most git things through the command line, but I find Tower's GUI very convenient for reviewing my changed files before I commit them.
At that point, I'm basically looking at superficial issues. That's usually the step where I realize I've left some debugging statements in my code, or have some formatting issues that ought to be cleaned up.
You're more than welcome to donate to Free software projects developing those tools and ask for a feature.
I also think you exagerate with it not being a deal breaker. I don't know any software developer IRL that uses proprietary git clients, or other developer-specific tools which are proprietary. Maybe most people don't care about FLOSS/propietary, but devs tend to care a lot more.
There's plenty of developers who don't mind using proprietary tools
According to the FAQ it's free while they're iterating until they start a freemium model, which makes sense. But in that case I prefer the InteliJ model, where the community version is also open source.
This is another Electron app after all.
But we software developers are a special kind. We expect people to work for free (as in no money) to create tools for us we then can use to earn money.
The point of the GPL was supposed to be about derivative products, that is code that depends non-optionally on other code. Whether it depends on that code via linking, calling exec(), or sending HTTP requests, it shouldn't be legal to write a non-open-source application that depends on a GPL program to do anything useful.
ps. I realize that in a technical sense my comment is "wrong", hence the downvotes, but what I'm getting at is, doesn't this horribly break the spirit of the GPL?
But some tips for your project: 1-Lose the forced email registration 2-Easy on the Luxury, we're devs not divas 3-The beta agreement is just way too scary to take the product seriously, examples:
>Company grants Recipient a nonexclusive, nontransferable license to use the GitKraken (“Product”) for a period designated by the Company for the purpose of testing and evaluating the Product.
>This Product is a beta release offering and is not at the level of performance of a commercially available product offering. The Product may not operate correctly and may be substantially modified prior to first commercial release, or at Company’s option may not be released commercially in the future.
How do you expect to compete with other existing and stable products ? I'm not trying to sound harsh, this is just my views and I think I've got a point right?
Ridiculously arrogant comment with nothing to back it up. GUIs exist; get over it.
"How do you expect to compete with other existing and stable products?"
It's a beta. The T's & C's pretty much translate as "it's a beta". What do you want them to do, NOT release a beta? Fair enough if so, but a lot of software is released this way. And pretty much all FLOSS software excuses itself from any kind of warranty too.
Basically shows you 'git status' at a glance, all the time. More for bash people: https://github.com/Bash-it/bash-it (similar to ooh my zsh)
https://github.com/alebcay/awesome-shell#for-developers
PyCharm / any IntelliJ-based IDE, Atom, vim, emacs etc can also all nicely show git status of your current project. I'd suggest one of those as well in whatever flavor of editor you prefer.
git add --patch
git commit -v
The --patch option allows you to interactively select which changes to add to the index. It also applies to other commands like checkout or reset.The -v flag shows a diff of what will be committed in the editor.
A simple google search for "How to use git without command line" will show you the amount of people who are looking for just that, I said most, not all, I believe git is a developer tool that's mostly used by dev who can navigate their way around CLI, lately i've seen and worked with non devs who want to just use GUI tools to help them around without having to know the details of what's going under the hood, this submission is a good example of that, it lacks every single tool that a developer that works in a big team with a big codebase needs. so yes, it's a tool for people who don't want to use the CLI properly. nothing arrogant at all.
>It's a beta. The T's & C's pretty much translate as "it's a beta". What do you want them to do, NOT release a beta? Fair enough if so, but a lot of software is released this way. And pretty much all FLOSS software excuses itself from any kind of warranty too.
This doesn't seem to be exactly a FLOSS per say, but I get your point, they're just doing it the wrong way, if you're gonna start something that you want to be on par with other tools, at least get out your beta with the same features, then add up on that post beta, but they're not doing that, they're releasing a GUI tool that has the basics of git, with videos and js animations. and if i'm going to even consider using that in a production environment I'd rather have a more serious T&C that will make me feel a bit safe that this thing will be supported and will live on for a few years ahead and not die, "It's just a beta" is something i'm really tired of hearing as an excuse to a crippled product, gmail was in beta for way to long and it was superior to all existing email solutions at the time, no one would've used it if it only supported sending and receiving emails, I wouldn't call his git client a beta either, it's more of an alpha experimental product IMHO.
$ rm gitkraken-amd64.debTry opening a large repo and scrolling a list of commits in GitKraken. You'll see large blank areas that get filled in after a few seconds. Now try it in, say, GitUp, which uses NSTableView: it is perfectly smooth.
Having nothing good for long lists doesn't matter as rendering pipline on OSX didn't updated for a years. Almost everything in UI on OSX is still software rendered instead of GPU. And Chrome extensively use GPU for rendering and that outperforms everything.
One weird thing: it'd be great to have the option to show a name, instead of a shrunken avatar in the commit log, perhaps configure how this is shown, so I can choose the format of the name and if I want to see an avatar or not... I may be the only one, but seeing a 100+ row long column of just my face (I have worked on a few projects solo) kind of creeps me out.
Any idea when the product is going to be ready and how much it will cost?
1) side by side comparison—seems like it only has vertical, which means for heavy changes it's basically useless.
2) conflict resolution.
3) search (it seems like gitkraken does this well from the screenshots)
4) Interactive rebasing, the bread and butter of clean git usage.
Without the above as a minimum, I might as well just use the git cli all the time. It's not worth using two git tools when the cli is already so powerful.
It integrates with git with just `git mergetool -t meld`.
1: http://meldmerge.org/Source: my day job used to involve daily merging of Chromium with Rockmelt and I probably evaluated every merge tool that existed at the time.
Tip: git config --global merge.conflictstyle=diff3
Maybe I'm a unix crank, but I've always tried to keep cola as more of a mediator over individual best-of-breed tools, whenever it made the most sense, rather than re-implementing things that already exist in better forms elsewhere.
For diffs we show inline diffs for interactive staging, one of our uniquely ergonomic features, while also making it extremely easy to launch `git difftool`. difftool itself can be configured to use the best tools for side-by-side diffing, so integrating tightly with it makes for the most cohesive Git experience.
For conflict resolution we defer to `git mergetool`, for the same reason.
With `git cola rebase` it's really easy to reorder lines in a rebase and swap through the pick/squash/fixup/... options using keyboard shortcuts. The advantage is you can't mess up the instruction sheet like you can when using $EDITOR -- cola ensures that the instruction sheet is semantically valid (e.g. "pick" must be first) and does not allow the user to create an invalid instruction sheet. Those little things make a big difference for usability.
What you didn't mention, though is one of the most important aspects to me: A Keyboard-Centric Design
I am a heavy vim/gvim user. I use the keyboard for everything, so cola is designed to augment the command-line experience. If you want to find some string in your codebase run:
$ git cola grep foo # or ctrl-g foo in cola
# hit enter
# navigate results using vim-style hjkl keys
# hit enter
# you are now in foo_bar.c at that exact line of code,
# in your favorite $EDITOR
Being able to do the most common operations, without touching a mouse, is one of my guiding design goals. Hopefully I'm not the only one that feels this way.For example, in the command line I would have to open a git log and then see that I want to do something like git rebase HEAD~3, or any of the more complicated parameters needed for rebase (such as git rebase --onto <master> <next> <topic>).
Is this possible and I just missed how?
git cola rebase HEAD~3
git cola rebase --onto x y z
The simple launcher from the UI exposes the first form. Feel free to open an issue if you need any help.The one exception in my case is 3-way merges. I handle those in Meld, which I find to be better suited than any of the integrated threesome tools in these git GUIs.
Even that I could probably do better in emacs if I set it up.
At least, that's how I see it.
Also, I'm sure there must be a PPA or something for gitg on Ubuntu, if you really like the tool.
Disclaimer: I made GitUp for that very reason ;)
If you want to see side-by side diffs that's also a lot better in a nice text editor than in a text window. Getting balloon tooltips when hovering commit hashes hidden in a gutter etc. allows more information to be fit onto the screen.
The reason you use a graphical UI is because a text ui doesn't fit all the information you want to show in a good way. Most git tools might not need show or draw a large amount of information (push/pull/commit/...) but some do (blame, log --graph for example).
The same thing applies for languages and frameworks, if the code is great show it off.
edit: When you load the page there is nothing to convince someone to dig further. All it says is "trust us it's better".
So if you are launching a product on Hacker News, it might be worthwhile to create two separate landing pages. Create one that is less than informative/provocative to get the votes/comments and then switch to a more informative one when you have secured a front page position.
Personally, I found the fullscreen pointless animations an arrogant abuse of my bandwidth and of my eyes, and the lack of content above and below the fold (and of scrolling and of the fold itself) a powerful source of claustrophobia; I noticed the tiny links to merely bad pages moments before closing the page in anger.
(for the record, the "screenshots" link is fully visible to me without scrolling)
Does GitKraken support GitHub Enterprise/Bitbucket Server?
GitKraken currently does not support these services but support is planned for a future release.
The only conclusion I can draw from this is that GitKraken supports one or more specific git based services that aren't GitHub Enterprise or Bitbucket, both of which use git.
I'm assuming that the service it does support is GitHub, but maybe the title and website should reflect that limitation.
Because very quickly you reach a point where 10GB RAM are not enough — I know, I've had that very issue.
Replaced every electron app with a native or Java alternative, now I can actually work without swapping.
I don't care that it's an Electron app. It seems snappy enough for me. Isn't Slack on Electron? I have that running all day too.
This whole "it's not open-source anymore" thing kind of sucks though. If this is just gearing up to be a paid application then it's really got to step up to SourceTree. I initially figured it was just the rowdy javascript crowd flexing their muscles and playing with things like Electron and that it would remain open-sourced.
> I hate blind dates. Can I see some screenshots?
> You can see some screenshots of GitKraken’s UI here.
You may want to rethink the design of your homepage.
What do they prefer? Zip files, or something with a slightly different interface but equivalent complexity (e.g. mercurial) ?
1. I shouldn't need to sign up with your service, this also makes me distrust the product.
2. There is no Gitlab login option.
3. It looks to be written in Javascript and thus uses a lot of resources: http://imgur.com/a/uEH4U
So it's not /really/ a desktop app, it looks like it's just a chrome wrapper for some javascript?
However, it kept on creating temporary files (copies of the files I staged), and they showed up as stageable files. Very confusing.
There also needs to be an option to truncate file paths in the staging area box. Middle truncation that responds to the box width, or an option to only show the file names, because right now file names are just completely unreadable.
Also, there are stage hunk buttons, but no discard hunk buttons.
Configurable diff font size too.
I'll be still using SourceTree for now (even though they had that catastrophic broken release last week).
Performance is a lot better than SourceTree though, which can be a real dog sometimes. It's definitely showing that Electron is a viable choice to make desktop apps.
every git gui provides one but I've never managed to parse any useful info from it. maybe you have to be supernaturally disciplined about your commit history or something. or maybe they're just fun to build, yay data visualisations etc
Linux support means source, deb and rpm!
RPM is the Redhat and SUSE which are major commercial players in Linux. My library was Redhat only in the college I worked at (I actually got to make that switch happen)and still is. Now I work with OpenSUSE at my company.
Uhm, WHAT? No thanks!
GitKraken currently does not support these services but support is planned for a future release."However I would very surprised if they did not support normal git remotes so it is irrelevant if that is Github Enterprise, Bitbucket server(Stash), Gitlab or whatever.