Git GUI Clients (0) --- Overview

Note: this article is published on 04/10/2024.

This is a series of articles related to Git GUI Clients.

Note. Although Git is very popular in the software development process, there is no category defined in this C # Corner site. So, we put the articles under the DevOps category.

When we discuss these Client GUI for Git, we consentrate on these following features assiacted with the specific Client GUI::

  • Visual StudioVS Code
    • Repos Management (Local):
      • Create a Repository, Branch
      • Clone a Repository
      • Merge, Rebase, Reset, Revert a Branch...
    • Interaction between Local Repos and Remote
      • Fetch
      • Pull
      • Push
      • Sync
    • Editor (+ the original environment funcitonalities, such as compiling, debugging and so on)
  • GitHub DesktopTortoiseGitSmartGit
    • Repos Management (Local)
    • Interaction between Local Repos and Remote
  • GitHub Server
    • Repos Management (Remote)
    • Interaction between Repos and Server automation (pipeline)

A - Introduction

In this article, we will describe the Source Control concept in general, Git's definition, history, and major features. The content of this article:

  • A: Introduction
  • B: Source Control or Version Control, Different Types and their History
    • B-1: Stand Alone App --- MS SourceSafe
    • B-2: Server App --- MS TFS
    • B-3: Online (Cloud) Centralized Service
      • MS DevOps
      • GitHub
      • GitLab
      • Jira
      • SVN --- Subversion
    • B-4: Distributed App --- Git
  • C: Git GUI Clients
    • C-1:Visual Studio
    • C-2:Visual Studio Code
    • C-3:GitHub Desktop
    • C-4: TortoiseGit
    • C-5:SmartGit

B - Source Control or Version Control

Source control (or version control) is the practice of tracking and managing changes to code. Source control management (SCM) systems provide a running history of code development and help to resolve conflicts when merging contributions from multiple sources.

Because I have a series of articles about source control [ref], I will not discuss source control details here but only summarize the major features.

Source Control types and their history:

B-1. Stand Alone App

MS Source

Admin

SourceSafe

B-2. Server App

Team Foundation

Server

B-3. Online (Cloud) Centralized Service

 DevOps

Pipelines

Board

 

GitHub

GitLab

Jira

  • SVN: Subversion: we will discuss a little bit in this series.

SVN

Restore

B-4.Distributed App

Distributed App: see Source Control (4), Git --- Distributed App

  • Git

Git

Working Directory

C - Git GUI Clients

For the Source controls we discussed above, including Stand Alone App, Server App, and online cloud service. For the Standard Alone and Server apps, such as MS SourceSafe and MS TFS, the server and client share the same GUI interface. For Stand Alone, it is absolutely true. For Server/Client, the client-side GUI just links the server through a connection string and then works in the same way as the Stand Alone version.

While for the online cloud service, we could run it online, i.e., from the server side, we could run it through a local client, we usually use Git, the distributed source control, that could run the source control locally, and can save the result online, say, in the server, such as MS DevOps, GitHub, GitLab, Jira and so on.

On the other hand, when we run Git, we can also choose the command line commands, Git - Reference (git-scm.com), or through a GUI. There are hundreds of Git GUI Clients available, see Git - GUI Clients (git-scm.com),

I will briefly introduce some major Git GUI Clients for Windows.

C-1. Visual Studio

Visual Studio is the most frequently used Git GUI Client because most developers use VS as a development environment and then use that as a source control tool, too. I have a lot of discussions in the article series, such asSource Control (4-3), Git - Cherry Pick In Visual Studio, and I will not discuss them here. Anyway, this is my major tool to do the source control work, almost covering 95%.

Visual Studio

Feature

C-2. Visual Studio Code

Visual Studio Code is a light version of Visual Studio. C# developer might not use that. However, when developing Angular or React, a Single Page App, developers may choose VS Code as a development environment. The functionalities in VS Code are similar to VS with some minor differences.

Studio Code

Git Blame

C-3. GitHub Desktop

Because I use Visual Studio as a client, although I downloaded the GitHub Desktop, I did not use it a lot. The major use is to check the apps that are on this server. If you are familiar with Visual Studio, and DevOps, the running in GitHub Desktop will be just a piece of cake.

GitHub Desktop

Branch

C-4. TortoiseGit

For TortoiseGit, I had at least two working environments to use as a source control tool, and in one environment, I used SVN (Subversion) as server-side source control and TortoiseSVN as a client tool to manage SVN locally. And furthermore, I found a useful feature that Visual Studio does not have, say, using TortoiseGit, one does not need to open a project or folder to manage the files in it, but just in any folder or file, right-click can invoke the TortoiseGit and do the job you need. So chose this Client GUI and will have an article or two to discuss it.

Git Reset

Consolas

C-5. SmartGit

I have one working environment to use this tool as a source control client tool. I include it here because it seems a most powerful tool. However, I did not use it a lot, and I did not realize it had a unique feature that I should switch the Git GUI Client from Visual Studio to SmartGit. But, anyway, I will list it here.

Smartgit

Download

References


Similar Articles