As .NET developers, the move from Team Foundation Server (TFS) to GitHub can seem daunting. And, this guide aims to make the transition easier by providing a detailed comparison of daily tasks in TFS and GitHub.

Tabular Comparison of Daily Tasks

Key Tasks TFS Approach GitHub Approach
Checking in Code Use the “Pending Changes” window in Visual Studio to review and check in changes. Stage changes using git add. Commit changes with git commit. Push changes to a remote repository using git push.
Checking out Code Done automatically when a file is edited, or manually via “Source Control Explorer. Switch between branches using git checkout.
Creating Branches Create branches via “Source Control Explorer” in Visual Studio. Use the git branch to create a new branch and git checkout to switch to that branch.
Merging Code Perform merging via “Source Control Explorer” using the “Merge” option. Use git merge to combine different branches.
Releasing Code Merge code into the Main branch and then create a release via TFS pipelines. Merge code into the Main or Master branch. Create a new Release via GitHub’s web interface or tag the commit using git tag.
Hotfixing Create a hotfix branch from the Main branch, fix the issue, and merge it back. Checkout to a hotfix branch, make the fix, commit it, merge it back, and delete the branch.
Shelving Changes Use the “Shelve” option in the “Pending Changes” window. Use git stash to save changes that are not ready to be committed.
Unshelving Changes Use “Unshelve” in TFS to retrieve changes. Use git stash apply to reapply previously stashed changes.
Release Versioning Release versions are managed in TFS using labels to mark specific points in the codebase. You can create a label in “Source Control Explorer” by right-clicking on the desired version of your code and selecting” Apply Label. You can use tags to mark specific versions of your code. Use git tag -a v1.0 -m “Version 1.0” to tag the current commit as version 1.0. Then, you can use git push –tags to push the tags to the remote repository.

GitHub Glossary

  • Repository (Repo): A directory where your projects live.
  • Clone: A copy of a repository that resides on your computer.
  • Fork: A personal copy of another user’s repository that exists on your GitHub account.
  • Branch: A distinct set of code changes with a unique name.
  • Commit: A snapshot of your changes.
  • Pull Request (PR): Proposed changes to a repository.
  • Merge: Combining code from different branches.
  • Issue: A note on a repository about something that needs attention.
  • Stash: Temporarily saves changes you have made to your working directory but don’t want to commit yet.

Conclusion

Switching from TFS to GitHub involves a learning curve, but the modern features and collaborative power of GitHub make the move worthwhile.

Also, this guide is your one-stop resource for the transition, and the included glossary ensures you’re well-equipped with GitHub terminology. Feel free to use and share this guide to aid in your migration journey.

FAQs

Switching involves a learning curve, but the modern features and collaborative capabilities of GitHub make the transition worthwhile. This guide aims to simplify that process for you.
Yes, you can integrate GitHub with TFS to use TFS for build automation while maintaining your code on GitHub. However, this might make the workflow complex.
In TFS, you handle this via "Code Reviews," whereas in GitHub, you use the "Pull Request" feature to propose and review code changes.
While many operations in GitHub can be done via the command line, you can also perform most actions using GitHub's web interface or GitHub Desktop application.
In TFS, "Shelving" allows you to set aside a batch of pending changes temporarily. In GitHub, "Stash" serves the same purpose but also works on your local machine, allowing more flexibility.
Yes, GitHub Actions provide similar capabilities for build automation and deployment as TFS pipelines.
In TFS, "Labels" are used for marking specific versions of your code for easy retrieval later. In GitHub, "Tags" serve the same purpose but are often more flexible and are stored as refs in the Git repository.
GitHub provides various features like two-factor authentication, secure cloud storage, and detailed access controls to keep your code safe.

Latest Blog

ChatGPT Fastest Growing App

Masterly Solutions | 12 Dec, 2022

ChatGPT – An Incredible Technology of the Decade
UI UX Design Guide

Jalpesh Modha | 05 Jan, 2023

UI UX Design Trends 2023