Dies ist eine alte Version des Dokuments!


Verteilte Versionsverwaltung für Programmcode und Dokumente mit Hilfe von Git

Bild: Git Logo

Git ist ein freies und quelloffenes, verteiltes Versionskontrollsystem, welches Anfang 2005 von Linus Torvalds, dem Initiator und heutigen Maintainer des Linux-Kernels, entwickelt wurde. Mit Hilfe der verteilten Versionsverwaltung von lassen sich die Dateien eines Projektes einfach organisieren und an beliebiger Stelle erweitern, optimieren und deployen und so kann fast alles von kleinen bis zu sehr grossen Projekten schnell und effizient bearbeitet werden.

In einem verteilten System wie Git gibt es viele gleichwertige Instanzen des Repositorys, so dass jeder Entwickler über sein eigenes Repository verfügt. Der Austausch von Veränderungen ist flexibler und erfolgt nicht zwingend über einen zentralen Server. Bei einem zentralen System, wie z.B. Subversion, muss es einen zentralen Server geben, auf dem die Geschichte des Projekts gespeichert wird. Alle Entwickler müssen sich mit diesem Server verbinden, um die Versionsgeschichte einzusehen oder Änderungen vorzunehmen.

Zum Einlesen was Git insbesondere leisten kann, welche Einsatzgebiete es gibt, welche Unterschiede es zu zu anderen Versionsverwaltungstools wie z.B. Subversion oder CVS bietet, eigenen sich unter anderem folgende hervorragende Bücher, die auch online zur Verfügung stehen.

Pro Git von Apress

Das Git-Buch

Einen schnellen Überblick über Git und seine Kommandos kann man mit Hilfe der Option --help zur Ansicht bringen.

 $ git --help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone             Clone a repository into a new directory
   init              Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add               Add file contents to the index
   mv                Move or rename a file, a directory, or a symlink
   restore           Restore working tree files
   rm                Remove files from the working tree and from the index
   sparse-checkout   Initialize and modify the sparse-checkout

examine the history and state (see also: git help revisions)
   bisect            Use binary search to find the commit that introduced a bug
   diff              Show changes between commits, commit and working tree, etc
   grep              Print lines matching a pattern
   log               Show commit logs
   show              Show various types of objects
   status            Show the working tree status

grow, mark and tweak your common history
   branch            List, create, or delete branches
   commit            Record changes to the repository
   merge             Join two or more development histories together
   rebase            Reapply commits on top of another base tip
   reset             Reset current HEAD to the specified state
   switch            Switch branches
   tag               Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch             Download objects and refs from another repository
   pull              Fetch from and integrate with another repository or a local branch
   push              Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.

Eine umfangreiche Dokumentation von Git liegt in Form vorinstallierter Manual-Pages vor, bei dem fast jedes Subkommando über eine eigene manpage verfügt. Die entsprechende Hilfeseiten erreicht man z.B. am Beispiel des Befehls git init über folgende Varianten:

 $ man git-init
 $ git init --help

bzw.

 $ git help status

Damit Git bei einem commit die Änderungen einem Urheber zuordnen kann, werden wir zunächst ein paar grundlegende Einstellungen vornehmen.

 $ git config --global user.name "Michael Nausch"
 $ git config --global user.email "django@nausch.org"

Optional können wir, sofern ausser uns kein anderer Nutzer, Zugriff auf den Rechner hat, auch ein Passwort für spätere git push hinterlegen

 $ git config --global user.password "0l1v3r157einec001350ck3!"

Da wir auf unserer Linux-Admin Workstation unseren gewohnten Editor vim verwenden wollen, definieren wir diesen für **git*.

 $ git config --global core.editor "vim"

$ git config –global color.ui auto

 $ git config --list --show-origin
file:/home/django/.gitconfig    user.name=Michael Nausch
file:/home/django/.gitconfig    user.email=django@nausch.org
file:/home/django/.gitconfig    user.password=0l1v3r157einec001350ck3!
file:/home/django/.gitconfig    core.editor=vim
 $ ls -alF ~/.gitconfig 
-rw-rw-r-- 1 django django 139 Apr  6 17:24 /home/django/.gitconfig
 $ cat ~/.gitconfig
[user]
	name = Michael Nausch
	email = django@nausch.org
	password = 0l1v3r157einec001350ck3!
[core]
	editor = vim
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • linux/git.1651084738.txt.gz
  • Zuletzt geändert: 27.04.2022 18:38.
  • von django