GitHub Source Control for your Visual Studio projects

In my last post I explained how you can use GitHub as a platform for Azure Automation runbook versioning and source control. Another tool IT Pros (like myself) use more and more is Visual Studio. This article walks you through the process of enabling GitHub as a source control platform for you Visual Studio projects.

 

Before we get started: Git vs. GitHub, what’s the difference?

I will keep this very short. In case you need more information, the internet is full of it. So I will keep this part very short, but it’s important to understand the content of this blog post. Git is a source control management system that works with repositories and branches. These concepts can be used create copies/snapshot of your code and allow you to go back in time to access older versions of your code. GitHub on the other hand is a web-based platform to manage Git repositories and branches. Your code can be shared with others and they can even contribute to your code. It’s important to understand this difference for the walkthrough in this blog post.

 

Configure GitHub

First of all I will create a new repository in GitHub. That’s it from the GitHub side, job done.

image

 

Install Git for Windows

On my dev machine I need to install “Git for Windows”. It can be downloaded from the appropriate website. The installation is straightforward.

image

 

Configure Visual Studio for Git Source Control

Now I start Visual Studio on my dev machine and create a new project. In this example I create a project for a “Azure Resource Manager” template, gut it could be anything you like.

image

I check “Add to source control” which gives me two option for source control: TFS or Git. There is no “GitHub” option available. This means that I need to install “Git for Windows” on my dev machine and create a local Git repository. Everything will be source controlled locally on my machine in a first step.

image

If you miss to activate this checkbox, you can add your solution to source control later. One important thing to know: In the background, a folder with the name “.git” is created on the Visual Studio solution folder. This is used for the Git repository management. Will dive into this later.

image

I will now commit the complete Visual Studio project with all containing files to Git.

image

If this is your first use of Git, you possibly are forced to enter some personal details. This information is used in the source control system when your work will be commited.

image

image

Now I can commit my work to the Git repository’s master branch (which is the only branch that exists at this time).

image

Done, my work is now commited to the local Git source control system. As you can see in the next screenshot, I could now sync the work to a remote repository which can be GitHub. With that, I make my work accessible to everyone that can access my GitHub repository. But if I would click “Sync” now, the process would fail.

image

Why? Because by hitting sync, my local Git repository branch “master” would be synched to my GitHub repository and in there to a branch with the name “master”. However, my GitHub repository already has a branch named “master”. That said, I first need to create a new local Git branch with a different name.

 

Prepare Git to work with GitHub

In Visual Studio I can use the “Team Explorer – Branches” to create a new branch from my “master” branch.

image

image

Now I change back to “Team Explorer – Changes” and click on the “Sync” link.

image

Because this is my first sync to a remote repository, I need to add the exact path. In my case, the remote repository lives on GitHub, so I need to provide the correct URL to that repository.

image

If you are unsure what URL to use, just use a browser to connect to your GitHub repository and copy the complete link.

image

Once you entered the URL the sync should work.

image

If you connect back to the GitHub website, you should now see that a new branch has been created. It has the same name as the local Git branch. And you should see the appropriate Visual Studio project files.

image

When using “Git CMD” that was installed with “Git for Windows”, you can change to the Visual Studio project folder and see that a remote repository was configured for your local Git repository.

git ls-remote

image

 

Ongoing changes in your Visual Studio project

If you make changes now, you can commit those to the local Git source control system and in a second step push then directly to the remote repository on GitHub.

image

image

image

image

image

 

Conclusion

The initial setup might be a bit tricky, but once you have this up and running, it works like a charm! GitHub repositories can be used free of charge (depending on your exact needs there might be costs) and are a great way to collaborate with your peers and people from all over the world.

Happy GitHubbing!
Marcel

About Marcel Zehner

Microsoft Azure MVP
This entry was posted in Azure, DevOps and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s