ITWissen.info - Tech know how online

Git

Git is a distributed version control system available as open source, is implemented in the programming language C and is available under the link below - currently in version 1.6.6.1 - for various platforms. Version control systems( VCS) have the task of documenting changes to one or more file(s) over time, so that changes and versions can be accessed at any time.

The development of Git was initiated in 2005 by Linus Torvald with the aim of realizing an alternative to the proprietary version control system Bitkeeper, and to bring about efficient cooperation between the globally operating developers of the Linuxkernel. In addition, some well-known projects such as GNOME, Ruby on Rails or Android use the version control system Git due to its high flexibility and speed. An alternative to Git is the Mercurial version control system, which is also distributed.

The Git concept

In the concept of so-called distributed version control implemented by Git, each user has his own local repository, which then contains a complete copy of the project - throughout its entire life cycle. The Git repository is ultimately a database and provides not only a working copy of all files in the repository but also a copy of the entire repository itself. The architecture of a repository, in turn, supports two different data structures - the indexdatabase and the object database.

The object database distinguishes four types of objects:

  • Blobs (Binary Large Objects), so each version of a file is uniquely specified and tagged with additional information (e.g., file creation date, author, etc.) - so a specific version can be recovered at any time.
  • Trees identify file-wide information in a directory such as metadata, blob identifiers, pathnames, or subdirectories.
  • Commits store metadata of changes made to the repository.
  • Tags assign user-specified version identifiers to a commit.

The object database is organized as a content addressable storagesystem. This means that each object in the storage is assigned a name that depends on the content and is therefore unique - the SHA algorithm (SHA-1) is used here. This identifies a group of secure hash algorithms (SHA, Secure Hash Algorithms) and, in the case of SHA-1, represents a 40- digit hexadecimal number(object id). This means that the same object id is always calculated for an identical content. This means in the consequence that Git does not orient itself at file and directory names, but pursues instead the contents of files.

The directory structure of a repository is described by the index - a temporary binary file. This is then ultimately used to record a version of a project at a particular point in time. The index, as distinguished from other version control systems, can separate between different steps in development and the confirmation of related changes through commits. This is used when merging multiple versions of the same file, as it allows for targeted verification and manipulation of files. In this context, Git is also referred to as a contenttracking system.

The properties of Git

A summary of the features of Git:

  • No client- server architecture is required because the repository is available locally.
  • Convenient functions are available for maintaining the repository.
  • The history of the versions are encrypted.
  • Communication protocols such as the SSH protocol, the http protocol and the FTP protocol, among others, support data transfer between different repositories.
  • Tools are available for interoperating with other version control systems such as Subversion (git-svn), Concurrent Version System( CVS) (git-cvsimport, git-cvsexport) and others.
  • Every version of a file is stored, not only its differences.
  • Git can be installed in parallel on a system in addition to CVS or Subversion.
Informations:
Englisch: Git
Updated at: 09.11.2013
#Words: 597
Links: system, programming language C, link, video conference service (VCS), task
Translations: DE
Sharing:    

All rights reserved DATACOM Buchverlag GmbH © 2024