Gitkraken Bitbucket



GitKraken allows you to authenticate with Bitbucket Server, which will help you find repos on Bitbucket Server when cloning or adding your remotes. GitKraken also allows initializing a repository directly to a remote Git hosting provider such as GitHub and Bitbucket.

Gitkraken Bitbucket Pull Request

In an effort to provide a comprehensive comparison of our tool against other Git clients on the market, we have explored how GitKraken fares against some formidable competitors:

  • GitKraken vs the CLI

And now, we’re taking on the GitKraken vs Fork argument.

  • GitKraken also allows initializing a repository directly to a remote Git hosting provider such as GitHub and Bitbucket.
  • Developers describe GitKraken as ' Git GUI Client for Windows Mac and Linux built on Electron '. The downright luxurious Git client for Windows, Mac and Linux. Cross-platform, 100% standalone, and free. On the other hand, SourceTree is detailed as ' A free Git GUI client for Windows and macOS '.
  • Bitbucket can be classified as a tool in the 'Code Collaboration & Version Control'category, while GitKraken is grouped under 'Source Code Management Desktop Apps'. 'Free private repos'is the primary reason why developers consider Bitbucket over the competitors, whereas 'Dark theme'was stated as the key factor in picking GitKraken.

Fork vs GitKraken

Before we get started with a feature comparison, the Fork developers deserve major props. 👏👏 A husband and wife team out of the Czech Republic, Dan and Tanya started building Fork on the side. They recently started developing the tool full time and, for the first time, offered a paid license in early 2020.

The dedication that goes into Fork is evident and the attention to user feedback is amazing to see. As a development team similarly motivated by user satisfaction, we can certainly appreciate such prioritization of new features and improvements.

So, what’s the right answer to the GitKraken or Fork question? Let’s dig into the features and functionality that make GitKraken the most popular Git GUI on the market.

It’s clear, for both large organizations and individual developers collaborating on projects, GitKraken offers more robust features and support for pull requests, cross-platform consistency, undoing/redoing, training materials, and more.

Creating Pull Requests In-App

GitKraken ✅| Fork ❌

Pull requests are standard best practice when it comes to collaborative development and are commonplace in open source. In short, a pull request occurs when a contributor asks a repo maintainer to view and approve code that they wish to merge into a project.

GitKraken supports pull requests with GitHub & GitHub Enterprise, GitLab & GitLab Self-Hosted, Bitbucket & Bitbucket Server, and Azure DevOps hosted repositories.

When you’re ready to submit code changes for approval in GitKraken, simply drag-and-drop your feature branch from the central commit graph onto the target branch of the main repository in the left panel to trigger the pull request option from a dropdown menu.

GitKraken goes one step further to support pull request templates, which allow contributors to add valuable context when submitting a pull request, such as how a bug was fixed, unit test cases, etc. Some repositories even require the use of formalized templates to submit proposed changes.

Learn more about enhancing pull request descriptions using templates.
Gitkraken Bitbucket

Gitkraken Bitbucket Server

Developers using Fork have significantly limited functionality when it comes to pull requests. While Fork users can create pull requests on GitHub from the application, that’s where the PR magic ends. You are not able to actually create a pull request from Fork, only send the relevant information to GitHub, where you can view the PR.

In addition to having the ability to create pull requests directly in GitKraken, with a customized template, GitKraken also highlights which branches include active PRs (with icons on the branches in the graph). We also make it extremely easy to open your pull requests directly in your hosting service with the click of a button.

Fork does not give you the ability to click to view the pull request on GitHub, nor does it indicate which branches have active PRs.

It seems that you’re out of luck if you’re using Fork with GitLab or Bitbucket repos when it comes to pull requests. GitKraken allows users to create pull requests and click-to-view PRs on GitHub, GitLab, Bitbucket, and Azure DevOps. Fork only supports this functionality for GitHub.

Linux Support

GitKraken ✅| Fork ❌

GitKraken is proud to offer support for the often neglected Linux developers out there. GitKraken is also available for Mac and Windows.

Fork, by comparison, cannot be used on Linux.

Azure DevOps Integration

GitKraken ✅| Fork ❌

The GitKraken Git Client integrates with Azure DevOps, along with GitHub, GitLab, Bitbucket, GitHub Enterprise, GitLab Self-Managed, and Bitbucket Server.

Fork does not integrate with Azure DevOps.

Cross-Platform Consistency

GitKraken ✅| Fork ❌

The GitKraken development structure allows us to offer a delightful and consistent user experience across all operating systems: Mac, Windows, and Linux.

This is valuable for many reasons, but a large benefit that cross-platform consistency offers product owners and enterprise teams is the ability for individual developers to use the OS of their choice while collaborating on a project. Empowering your developers with the coding environment and tools they want will lead to happier and more productive employees.

Developing one application for multiple operating systems simultaneously is more sustainable and allows the GitKraken team to develop and release new features to please all of our users on a more consistent basis.

Compare this to Fork, which is only available for Mac and Windows, and develops two disparate versions of the application, releasing different features at different times. This makes collaboration a challenge if your colleague on Windows is lacking features that you’re able to access on Mac.

Undo/Redo Button

GitKraken ✅| Fork ❌

By far one of the most popular features of the GitKraken Git GUI is our magical Undo/Redo button. Literally allowing you to go back in time and undo a grave mistake, like accidentally resetting a branch and losing multiple commits. 😱

If you’ve ever wished you could undo a Git action with the click of a button, you’re in luck with GitKraken. Our Undo button allows users to undo the following:

  • Checkout
  • Commit
  • Discard
  • Delete branch
  • Remove remote
  • Reset branch to commit

Similarly, all of these actions can be redone using the Redo button if you undo them by mistake.

Fork does not offer an equivalent feature. While you’re able to “show lost commits” with reflog in Fork, that’s where your time travel abilities end. You cannot go back to undo discarding changes, deleting or resetting branches, removing remotes, etc. as you can with GitKraken.

Issue Tracking Integrations

GitKraken ✅ | Fork ❌

Gitkraken Multiple Bitbucket Accounts

Developers are always looking for ways to further optimize their workflow; how they can get the most done in the shortest amount of time. One of the easiest ways to accomplish this is less context switching, often made possible through integrations.

The GitKraken Git GUI is the only Git client on the market that offers robust integrations with the most-used issue tracking tools.

Gitkraken

The GitKraken Git GUI integrates with the following issue trackers:

Users who utilize one of the above tools to manage their issues can accomplish the following actions directly from the GitKraken Git GUI: view, filter, and edit issues/cards, create branches tied to issues/cards, and create new issues/cards.

Fork, by comparison, does not integrate with these popular issue tracking tools.

Enterprise Account Management

GitKraken ✅| Fork ❌

The GitKraken team has made significant and thoughtful updates to our product offerings to better support enterprise teams and organizations needing enhanced security. Leadership can choose from either our stand-alone or self-hosted license options to fit their specific needs.

The user & license management and LDAP integration offered by GitKraken self-hosted give teams full control over their GitKraken account, making it easy to transfer individual licenses to new team members and customize requirements for access.

Fork does not offer any self-hosted or stand-alone versions of their software, and does not offer team account management or enhanced security options.

Onboarding & Git Training Materials

GitKraken ✅| Fork ❌

When introducing a new tool, onboarding your development team can be challenging. Few people like change, after all. Successfully adopting the tools your team needs to maximize productivity—AKA moving from the command line to a Git client—will depend on how well your devs understand the tool’s potential. For modern development teams, it’s also critical to maintain a comprehensive understanding of basic to advanced Git concepts.

Learn more about how your tools and development standards can affect your organization’s DevOps success.

One of the benefits possible with a marketing and content team is the ability to produce quality training and educational resources to help onboard new GitKraken users, and ensure current users continue to get the most from their experience.

The GitKraken support site is a treasure trove of product videos and tips, technical documentation, feature highlights, and our fan-favorite release notes.

Plus, users can subscribe to the GitKraken YouTube channel to get access to our library of Git educational videos, tutorials for using GitKraken with GitHub, GitLab, Bitbucket, and Azure DevOps, whiteboard sessions, and more for free.

Level up your team’s Git skills with our series of beginner, intermediate, and advanced Git tutorial videos.

While Fork does offer a blog to provide more information about specific features, it’s extremely difficult to find the exact information you’re looking for—like how to get the most out of a specific feature for example—without scrolling through release notes or dissecting blog articles. There is no search functionality built into the Fork site, so users lack the ability to quickly access what they’re looking for.

GitKraken users, on the other hand, can search both our support site and Dev Blog to find help with specific features, information on integrations, training materials, product cheat sheets and more.

Having these resources readily available will make an enormous difference when onboarding new team members and will help your developers feel more confident with the tools they’re using, ultimately making them more productive and happier longterm.

Ready to Make the Switch to GitKraken?

Are you ready to try GitKraken? If you’re currently using another Git client, like Fork, Sourcetree, Tower or SmartGit, we’ll make the deal even sweeter with a discount.

Optimize your team’s workflow and increase productivity with the GitKraken Git GUI and get $20 off GitKraken Pro for switching from another Client, like Fork.

Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!

Back to list

The Internet is full of articles on why you shouldn’t use Git submodules. While submodules are useful for a few use cases, they do have several drawbacks.

Are there alternatives? The answer is: yes! There are (at least) two tools that can help track the history of software dependencies in your project while allowing you to keep using Git:

  • git subtree
  • Google repo

In this post we will look at git subtree and show why it is an improvement – albeit not perfect – over git submodule.

What is git subtree, and why should I use it?

git subtree lets you nest one repository inside another as a sub-directory. It is one of several ways Git projects can manage project dependencies.

Why you may want to consider git subtree

  • Management of a simple workflow is easy.
  • Older version of Git are supported (even older than v1.5.2).
  • The sub-project’s code is available right after the clone of the super project is done.
  • git subtree does not require users of your repository to learn anything new. They can ignore the fact that you are using git subtree to manage dependencies.
  • git subtree does not add new metadata files like git submodule does (i.e., .gitmodule).
  • Contents of the module can be modified without having a separate repository copy of the dependency somewhere else.

Drawbacks (but in our opinion they're largely acceptable):

  • You must learn about a new merge strategy (i.e.git subtree).
  • Contributing code back upstream for the sub-projects is slightly more complicated.
  • The responsibility of not mixing super and sub-project code in commits lies with you.

How to use git subtree

git subtree is available in stock version of Git since May 2012 – v1.7.11 and above. The version installed by homebrew on OSX already has subtree properly wired, but on some platforms you might need to follow the installation instructions.

Here is a canonical example of tracking a vim plug-in using git subtree.

The quick and dirty way without remote tracking

If you just want a couple of one-liners to cut and paste, read this paragraph. First add git subtree at a specified prefix folder:

(The common practice is to not store the entire history of the subproject in your main repository, but If you want to preserve it just omit the –squash flag.)

The above command produces this output:

As you can see this records a merge commit by squashing the whole history of the vim-surround repository into a single one:

If after a while you want to update the code of the plugin from the upstream repository you can just do a git subtree pull:

This is very quick and painless, but the commands are slightly lengthy and hard to remember. We can make the commands shorter by adding the sub-project as a remote.

Gitkraken Bitbucket Tutorial

Adding the sub-project as a remote

Adding the subtree as a remote allows us to refer to it in shorter form:

Now we can add the subtree (as before), but now we can refer to the remote in short form:

The command to update the sub-project at a later date becomes:

Contributing back upstream

We can freely commit our fixes to the sub-project in our local working directory now. When it’s time to contribute back to the upstream project, we need to fork the project and add it as another remote:

Now we can use the subtree push command like the following:

After this we’re ready and we can open a pull-request to the maintainer of the package.

Can I do this without using the git subtree command?

Yes! Yes you can. git subtree is different from the subtree merge strategy. You can still use the merge strategy even if for some reason git subtree is not available. Here is how you would go about it.

Add the dependency as a simple git remote:

Before reading the contents of the dependency into the repository, it’s important to record a merge so that we can track the entire tree history of the plug-in up to this point:

Which outputs:

We then read the content of the latest tree-object into the plugin repository into our working directory ready to be committed:

Gitkraken bitbucket pull request

Gitkraken Bitbucket

Now we can commit (and it will be a merge commit that will preserve the history of the tree we read):

When we want to update the project we can now pull using the git subtree merge strategy:

Git subtree is a great alternative

Gitkraken Bitbucket Token

Gitkraken Bitbucket

After having used git submodules for a while, you'll see git subtree solves lots of the problems with git submodule. As usual, with all things Git, there is a learning curve to make the most of the feature.

Follow me on Twitter @durdn for more things and stuff about Git. And check out Atlassian Bitbucket if you’re looking for a good tool to manage your Git repos.

Update: After publishing this piece, I also wrote an article on the power of Git subtree.