How to clone a repository, generate Git credentials, and more
Is your organization going through a DevOps transformation? Perhaps you’ve even been tasked to head up the project. And surely, part of this transformation is going to include source control management.
More and more enterprise companies are using Git to manage their code and file changes. One of the most popular Git hosting services for large teams, particularly those partial to Microsoft’s robust suite of developer tools, is Azure DevOps.
Installing GitKraken on Fedora 27 GitKraken is a full-featured graphical Git client with support for multiple platforms. Given that I’m trying to live a multi-platform life, it made sense for me to give this a try and see whether it is worth making part of my (evolving and updated) multi-platform toolbelt.
But adopting Git, and then successfully scaling it within your organization to reach your DevOps transformation goals, might seem like an insurmountable task. Don’t sweat it. We’ve got your playbook for transitioning to Git, successfully utilizing Azure DevOps as your Git hosting service, and how the GitKraken Git Client can help solve related challenges commonly faced by developers and teams.
See how Azure DevOps and GitKraken fit into the DevOps lifecycle in the 2020 DevOps Tools Report.
Already on Git? You can jump down to learn more about using GitKraken with Azure DevOps.
Whether you’re currently working with SVN, Perforce, or TFS, migrating to Git will require additional overhead.
Such a transition will require organization, preparation, and some patience. 😅But having a powerful Git GUI like GitKraken on your side will not only make the code migration and data transfer faster, it will enable your team to get up and running on Git immediately after you’ve completed the overhaul.
And trust us; it’s going to be well worth it.
Just like anything new, your team will need time to adjust to learning Git. But lucky for you, there are numerous resources available to help onboard your developers and get them up and running with more productive workflows quickly.
Visit our Learn Git database to access Git tutorials and educational resources for all experience levels.
Lucky for managers and product owners, it’s extremely likely you already have a Git champion on your side within your company. Employ them to help their colleagues see the benefits of transitioning to Git.
While learning Git commands can be beneficial for a developer’s foundational knowledge, their time is ultimately much better spent programming rather than taking the mental energy to memorize commands. This is where GitKraken’s GUI approach comes in to save the day.
Similar to how operating systems have become more visually-appealing and intuitive by offering user interfaces for managing applications, dragging-and-dropping files, and clicking on icons to perform actions, developers using the GitKraken Git GUI will enhance their productivity, reduce errors, and become more confident in their daily workflows.
Git will open up a whole new world for your development team and processes. If you feel like hopping on a flying carpet, we won’t blame you.
One of the best new workflow opportunities involves cloning repositories. When working with Azure DevOps, users have two options for cloning a Git repo. You can choose to utilize the git clone
command through the CLI, or make it even easier on yourself and use a Git Client like GitKraken.
The best part of Git is arguably how easy it makes it for team collaboration. Git’s distributed nature provides options not available in other version control systems, particularly the ability to clone a repository.
This makes it possible for individual developers to copy an entire working project to their local machine and work in parallel with team members. No need to ask permission or wait turns to check out files or push changes. Furthermore, cloned repos provide developers a sandbox to experiment in without affecting the original codebase.
It’s common practice in Git to designate the main project—meaning the copy of the project that will ultimately become final—on a Git hosting service, such as Azure DevOps. Hosting repositories on Azure DevOps makes the project more accessible to collaborators with appropriate permissions.
Before you can open or clone an Azure DevOps Git repository in GitKraken, you will need to first set up the integration. You can get started by navigating to a New Tab and clicking the on Azure DevOps button under Start a hosted repo.
GitKraken will then ask you for the host domain of your Azure DevOps repo. Simply copy-and-paste the domain into the required field.
See the process of integrating Azure DevOps & GitKraken in our step-by-step tutorial:
When using Git, you will sometimes be prompted to enter user credentials to perform operations. This could entail a username and password for accessing a remote repo over HTTPS, SSH key, or via a personal access token (PAT).
After you have entered your Azure DevOps domain into the requested field in GitKraken, our Git Client will give you a shortcut to generate your personal access token directly on Azure Devops.
Once the connection to Azure DevOps has been made, you will be provided with an additional option to generate an SSH key, which you can copy to your clipboard and paste into your Azure DevOps account. Once you have added the new key into Azure DevOps, it will be immediately reflected in GitKraken.
The ability to generate this Git credential in GitKraken prevents users from having to manually create an SSH key pair.
Once you’ve successfully integrated GitKraken with Azure DevOps, you can start cloning local copies of your remote repo!
Cloning establishes a connection between the remote repository hosted on Azure DevOps and your local machine, allowing push and pull actions between the two repos. Multiple clones can be made to the same remote, giving your team the ability to collaborate without risking the integrity of the original code.
Not only can you clone Azure DevOps remotes through GitKraken, the integration allows you to add new remote repositories. Simply click the + button on the Remote section in the left panel and select from the populated list of available remotes from your host.
Learn more about adding remotes through GitKraken’s Azure DevOps integration:
Git and GitKraken open up a plethora of new workflow possibilities with our branching features. Developers are empowered to explore the options between branches of their repository’s history, providing them more flexibility and freedom without losing important processes.
Let’s say, for example, that you want to take a new change from your remote repository in Azure DevOps and pull it down to your local repo in GitKraken. You will start by performing a fetch to detect the change, and then you will perform a pull to bring the changes down to your local repo.
Alternatively, let’s say you want to take new changes you have made on your local repository and apply them to the remote. This involves performing a push.
Once your local branch has the changes you want to push to your remote, simply click the Push button in the top toolbar. GitKraken will then alert you that the branch doesn’t exist on the remote and will confirm that you wish to add it.
We just went over how to perform a push from GitKraken to Azure DevOps. It is at this point in your workflow when pull requests come into play.
Pull requests are an integral part of Git; they help you harness the intended benefits of using version control in general. If you’re working with Git, chances are you will encounter the following situation: you make local changes to a cloned repository and then you submit those changes to the project maintainer for review before they get implemented, or merged.
Essentially, a pull request is much like it sounds: you’re requesting that someone review and approve your changes before they become final.
Learn more about pull requests in Git in this intermediate tutorial.
GitKraken provides you with multiple options for initiating a pull request. You may simply click the + button from the Pull Request section in the left panel, or you can drag-and-drop the branch with the changes you want to push onto the branch you wish to push to from the central commit graph. If you choose the latter option, GitKraken will pre-fill your pull request template.
GitKraken also gives you a convenient shortcut to view the pull request directly on Azure DevOps where you can continue the code review process.
If everything looks good, the code reviewer will perform the merge! Changes can either be merged from Azure DevOps or GitKraken; the integration will ensure that the pull request is updated in both applications.
A common concern for any technical team transferring or hosting data is security. We previously discussed how GitKraken can help Azure DevOps users generate their Git credentials, including SSH keys (generating PATs is the responsibility of the hosting service). These will play an integral part in maintaining the security of your team’s code.
When working with Azure DevOps and Git, some users experience issues dealing with proxy servers. Depending on how your team’s configuration is set-up, the Azure DevOps integration may not work with some proxy setups. However, most setups will work fine directly over HTTPS and SSH, meaning your team will still have access and be able to work with your repositories for all traditional Git commands.
Some Azure DevOps users can experience issues when first setting up the integration between GitKraken and Azure DevOps.
If, after you complete the integration and get stuck in an authorization loop when trying to perform a push, you may see the following message: Your OAuth token for “Azure DevOps” is invalid
. This could mean that you are experiencing an issue with your auth token. In this case, we suggest taking the following steps:
If the aforementioned suggestion does not solve the issue, we suggest you delete your .gitkraken
folder in your file system on your local machine. This will remove all of your authentication settings, profiles, and applications, enabling you to start fresh. To accomplish this, we suggest taking the following steps:
.gitkraken
file and delete it. Alternatively, you can move it to another location to back it up instead. Your file should be located: c:users{USER}appdataroaming.gitkraken
/Users/{user}/.gitkraken or ~/.gitkraken
~/.gitkraken
If you are still receiving this error after completing the above steps, we suggest that you reach out to the GitKraken support team at support@gitkraken.com. Please note: only GitKraken Enterprise and Pro customers receive guaranteed email support within 24 hours.
You are now well-equipped to start implementing Git at your organization using Azure DevOps and GitKraken. And if you run into any issues, the best cross-platform Git GUI is here to help.
GitKraken & Azure DevOps Resources:
Get started with Azure DevOps + GitKraken with the help of DevOps implementation engineer today.
Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!
-->Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015
Choose a method to securely access the code in Azure Repos, Azure DevOps Server 2019, or Team Foundation Server (TFS) Git repositories.Use these credentials with Git at a command prompt. These credentials also work with any Git client that supports HTTPS or SSH authentication.Limit the scope of access and revoke these credentials when they're no longer needed.
Important
Azure DevOps no longer supports Alternate Credentials authentication since the beginning of March 2, 2020. If you're still using Alternate Credentials, we strongly encourage you to switch to a more secure authentication method (for example, personal access tokens). Learn more.
Azure DevOps Server was formerly named Visual Studio Team Foundation Server.
Tip
Using Visual Studio? Team Explorer handles authentication with Azure Repos for you.
Note
Visual Studio 2019 now includes a new Git tool that provides an improved experience when connecting to a Git repository. When you enable this tool, the Team Explorer tool is effectively disabled when connected to a Git repository. You can acquire the new tool by downloading Visual Studio 2019 version 16.6. To enable and use the new tool, see Git experience in Visual Studio (Preview).
Authentication Type | When to use | Secure? | Ease of setup | Additional tools |
---|---|---|---|---|
Personal access tokens | You need an easy to configure credential or need configurable access controls | Very secure (when using HTTPS) | Easy | Optional (Git credential managers) |
SSH | You already have SSH keys set up, or are on macOS or Linux | Very secure | Intermediate | Windows users will need the SSH tools included with Git for Windows |
Personal access tokens (PATs) give you access to Azure DevOps and Team Foundation Server (TFS), without using your username and password directly.These tokens have an expiration date from when they're created. You can restrict the scope of the data they can access.Use PATs to authenticate if you don't already have SSH keys set up on your system or if you need to restrict the permissions that are granted by the credential.
The Git Credential Manager Core is an optional tool that makes it easy to create PATs when you're working with Azure Repos.Sign in to the web portal, generate a token, and then use the token as your password when you're connecting to Azure Repos.
PATs are generated on demand when you have the credential manager installed.The credential manager creates the token in Azure DevOps and saves it locally for use with the Git command line or other client.
Note
Current versions of Git for Windows include the Git credential manager as an optional feature during installation.
Key authentication with SSH works through a public and private key pair that you create on your computer.You associate the public key with your username from the web. Azure DevOps will encrypt the data sent to you with that key when you work with Git.You decrypt the data on your computer with the private key, which is never shared or sent over the network.
SSH is a great option if you've already got it set up on your system—just add a public key to Azure DevOps and clone your repos using SSH.If you don't have SSH set up on your computer, you should use PATs and HTTPS instead - it's secure and easier to set up.
Learn more about setting up SSH with Azure DevOps
Use OAuthto generate tokens for accessing REST APIs. The Accountsand ProfilesAPIs support only OAuth.