In this very special panel discussion from the 2021 GitKon Git conference, the product team behind GitKraken Client shares unique insight into the most popular Git tool in the world and answers community questions.
The GitKraken product team panel included:
- Jonathan Silva, Product Manager, GitKraken and panel host
- Dan Suceava, (former) CTO, GitKraken
- Jeff Schinella, Director of Product, GitKraken
- Justin Roberts, Director of Product, GitKraken
Look and Feel of GitKraken Client
Some people compare GitKraken Client to Guitar Hero, with its vibrant colorful array. Justin Roberts revealed that one of the reasons why the GitKraken team decided to build GitKraken Client in the first place was that the environment for Git clients was pretty bad back when they started. Surprisingly, there were no Git clients that even had a dark theme, so it was an easy win to start with a developer tool with a pretty basic dark palette. The dark theme with bright colors is something that immediately set GitKraken Client apart from other Git clients on the market.
Jeff Schinella noted that there was also some inspiration from subway style maps of different cities. The ideas of connections of nodes, and being able to look at the status of a Git repo, following along a pathway of stops, gave direction to the team building GitKraken Client. In fact, a lot of the design, including the notorious Keif the Kraken logo, was heavily influenced by clean, 60s-style graphic design and subway system maps.
Dragging-and-Dropping
The central graph in GitKraken Client lets users drag-and-drop a branch to start a whole bunch of other operations. Jonathan Silva noted that this was one of the things that helped him learn about Git and what it means to ‘trigger’ a Git merge or Git rebase. The idea of drag-and-drop, according to Jeff, has been around for a while, so the team implemented it in GitKraken Client to make it easier for people to approach changes to their repositories without having to type in a terminal.
The visual representation in GitKraken Client makes it intuitive to grab a commit and drag it to a new location. When you talk about Git visualization—a big part of what makes GitKraken Client what it is—you’re talking about being able to see and visualize what a commit or Git branch looks like. It helps users understand Git and discover things you can do in a GUI that you might not be able to do using just the CLI. Just by dragging a branch onto another branch, you get a context menu that says “here are all the things that you can do between these two branches.”
Connecting to Git Hosting Services
The difference between using one of GitKraken Client integrations with a Git hosting service and just connecting over SSH and HTTPS is you get the ability to use provider-specific actions, such as interactive PR management for GitHub pull requests, which even allows you to merge pull requests without leaving the tool. You can interact with pull requests via other hosting services within GitKraken Client after you’ve connected the integration, as well as do things like fork a remote directly inside GitKraken Client.
While Git hosting services integrations are powerful, you can still use SSH and HTTPS to connect to other services that are not fully integrated with GitKraken Client yet. You can even have different profiles to connect to different integrations.
The GitKraken team is always listening to the community for what Git hosting service to integrate with next. GitKraken maintains a feedback site where community members can make new requests and upvote existing ones. For example, the community has really driven the integration with AWS CodeCommit and Microsoft’s Azure Repos. These have been added to GitKraken Client with basic functionality, and richer integration features are planned for future releases.
Underutilized GitKraken Client Features
Git Blame
Dan Suceava’s favorite underused GitKraken Client feature is Git blame. It’s a very powerful feature that lets you look at history and see authorship information. Don’t use it to actually go and blame people now 😉, but it’s good to be able to see who’s made which changes and when the changes were made. Tracking down when certain things broke and who potentially broke them can save a lot of time investigating and implementing a fix.
Activity Logs
Activity logs is another feature in GitKraken Client that Dan wishes more people knew about. To access this feature, click on the icon in the footer bar of GitKraken Client that looks like a bulleted list.
Activity logs show you what actions were performed inside the client. Many people who are used to the CLI often ask to see what happens under the hood when GitKraken Client does an action. While GitKraken Client does not actually perform Git CLI commands, it does a lot of stuff in the background, and the activity logs show you what operations were performed.
Command Palette
For Justin, the most underutilized feature in GitKraken Client is the Command Palette. You can open this quickly by typing Ctrl/Cmd+P or by clicking the magic wand icon in the top nav menu. From there, you gain access to a lot of commands that the application offers without having to go and actually click them.
Justin personally loves it for checking out branches when he’s reviewing pull requests as he can find the right branch by just typing the issue number. The command palette reveals all the options close to the intended target because it uses “fuzzy search” logic, also known as fast global search.
Built-in Code Editor
Another feature that Justin thinks deserves more spotlight is the editor included inside of GitKraken Client. The client embeds the Monaco editor, which is the same basic editor VS Code uses.
It’s really easy to get into a file and start making edits in GitKraken Client; simply use the command palette to search for the file to open within the editor and get to work!
Interactive Rebase
Jeff’s favorite feature offered by GitKraken Client is interactive rebase. From start to finish, the whole process of trying to figure out and understand how Git interactive rebase happens is very hard using the CLI. Utilizing the drag-and-drop functionality of GitKraken Client, interactive rebase becomes an intuitive experience where you can reorder your commits, merge them, rename them, or squash them together from a single GUI menu. Interactive rebase is quite tedious and can be very destructive when performed outside of GitKraken Client.
GitKraken Client reduces the risk of getting your repos in a bad state, and gives you more control when performing advanced actions, like interactive rebase.
GitKraken CLI
According to Justin, the GitKraken CLI, released with GitKraken Client version 8.0, harkens back to the original goals of the GitKraken team. They wanted to make tools that were super intuitive and clear to users who might be new to Git. The team wanted to give users a graphical user interface that was really easy to use.
From the beginning, the GitKraken team had a slight aversion to the CLI, and it sort of became a “Git Client vs the CLI” type of mentality. That was the team’s perceived stance for a long time because they didn’t understand why someone would choose to use the CLI over a GUI.
However, over the years, the GitKraken team started to learn more about users and the software development industry, and it became clear that while Gi workflows have certainly evolved, the command line isn’t going anywhere. There are people who have grown up using the CLI and it’s very familiar to them. There are also some things that are still more powerful to do in CLI, and GitKraken didn’t want to ignore that segment of the developer world.
The GitKraken team really wanted to embrace what can be done in the CLI, and then apply some of the same usability benefits offered by GitKraken Client in a CLI tool.
One of the things the team discovered by interviewing users is that terminal setup is always really stressful, annoying, and difficult. The number of packages and things you can use to customize a terminal can seem overwhelming and time-consuming.
Auto-Complete Suggestions for Git Commands
The GitKraken team wanted to offer a lot of features helpful for CLI users, like auto-complete suggestions for Git commands. When you’re typing Git commands, rather than having to memorize commands or dig through articles trying to find what you need, GitKraken Client will start to suggest things based on where you’re at in typing the command.
Commit Graph in Terminal Tabs
GitKraken CLI brings visualization to the terminal, which is really powerful. Something the GitKraken team often hears from users is that they use GitKraken Client because they can visualize things, but they actually go back to the CLI to run commands. GitKraken CLI creates a place where you can do all of the things that you do with Git, whether that’s with CLI or with the commit graph, all in one place without context switching.
Watch this video clip to hear the GitKraken team talk more about the GitKraken CLI.
Teams in GitKraken Client
GitKraken Client introduced a team view in version 7.7. In the left panel, there is a Teams pane where you can select any teams that you belong to and perform certain team actions. According to Justin, this is a natural extension of the original goal to better visualize a Git repository.
The team features in GitKraken Client go beyond what an individual contributes to a project, visualizing the work of everyone involved on a repository, with all of their remotes and how they’re connecting, and how they’re changing the project. While GitKraken Client may have once been thought of as primarily a single developer tool, the addition of teams has been a really big evolutionary step towards better serving organizations.
Avoiding Merge Conflicts
We all know the scenario where you’re working on something that someone else on your team is also working on, and you ultimately run into a Git merge conflict. Merge conflicts can cause a lot of problems.
The Teams panel shows who is working on the repository at the same time, and GitKraken Client will actually alert you of a potential merge conflict before the code is pushed.
Not only does GitKraken Client warn you of potential merge conflicts, the tool helps you resolve them if they do occur. GitKraken Client’s built-in merge tool makes merge conflict resolution, a nototoriously risky task, much safer.
Deep Linking
Imagine a scenario where you want to share a Git branch with someone. You might hop on Slack and say “hey can you go check out my branch.” You have to remember the branch name, type the branch name, and then your colleague has to read the branch name and go back into GitKraken Client and search for the branch. That scenario is exactly why GitKraken Client has introduced deep linking.
Deep linking makes it really easy to click on a branch, grab a link, and then paste that link into Slack, or wherever you need to reference it. This allows other people the ability to click the link and easily open the branch in GitKraken Client on their machine.
Skip to this part in the video to hear the full conversation about GitKraken Client team features and deep linking.
The Team’s Favorite Kiefs
Keif is the GitKraken mascot, and they love to dress up in costumes (psst: check out the Keif gallery!) Each has its own personality and each GitKraken team member has their favorite.
Watch this clip to see which Keifs made the list of panel member favorites.
GitKraken Client Continued Evolution
The panel gave a look into how GitKraken Client has evolved from a way to solve an internal issue to the leading Git client in the world, helping millions of users become more productive using Git.
Whether it’s the visualization, the ease of performing advanced and complex Git tasks, or for the awesome CLI and team features, we know you will love using GitKraken Client in your workflow. Download the legendary GitKraken Client free for Mac, Windows, and Linux today!