Git für absolute Anfänger

Wenn Sie neu in der Programmierwelt sind, sollte das Erlernen von Git ganz oben auf Ihrer Prioritätenliste stehen.

Git ist ein solches Tool, dem Sie im Rahmen Ihrer Arbeit täglich begegnen werden.

Was Sie in diesem Beitrag erwarten können

In diesem Beitrag werde ich einen Überblick über Git geben und wie man damit anfängt.

  • Was ist Git?
  • Mit Git verbundene Terminologien
  • Interaktion mit Git über die Befehlszeile

Ich verspreche, die Themen so einfach wie möglich zu erklären.

Beginnen wir also damit, zu verstehen, was Git ist.

Git ist ein Versionskontrollsystem.

Was zum Teufel ist ein Versionskontrollsystem (VCS)?

Ein VCS überwacht und verfolgt alle Änderungen, die an den von ihm überwachten Dateien vorgenommen wurden.

Außerdem können mehrere Entwickler denselben Dateisatz gemeinsam nutzen und gemeinsam daran arbeiten, ohne dass dies zu Konflikten führt.

Es verfolgt nicht nur, welche Dateien geändert wurden, sondern auch, welche Dateien geändert wurden

  • Welche Änderungen wurden vorgenommen?
  • Wer hat diese Änderungen vorgenommen?
  • Wann wurden diese Änderungen vorgenommen?

Damit Sie mit anderen Entwicklern teilen und zusammenarbeiten können, benötigen Sie Zugriff auf einen Git-basierten gehosteten Dienst.

Einige der beliebtesten von Git gehosteten Dienstanbieter sind:

  • GitHub
  • Bit Bucket
  • Microsoft Visual Studio Team Services

Alle bieten eine ähnliche Funktionalität.

Was ist ein Repository in Git?

Ein Repository ist ein Ordner, dessen Inhalt von Git verfolgt wird. In einfachen Worten ist es auch als Repo bekannt .

In einem Repo können mehrere Dateien und Unterordner vorhanden sein. Normalerweise enthalten die im Repository vorhandenen Dateien Quellcode.

In jedem Repo befindet sich ein .git-Ordner . Dieser Ordner enthält alle Dateien und Ordner, die Git benötigt, um alle Änderungen an den Dateien in diesem Repo zu verfolgen.

Wenn wir diesen .git-Ordner löschen, wird Git diesen Ordner weder als Repo identifizieren noch seinen Inhalt verfolgen.

Das auf dem lokalen Computer vorhandene Repo wird als lokales Repository bezeichnet , und das auf einer gehosteten Git-Plattform befindliche Repository wird als Remote-Repository bezeichnet .

Laden Sie Git herunter und installieren Sie es

Das Herunterladen und Installieren von Git ist ein ziemlich einfacher Vorgang.

Sie können Git hier herunterladen.

Nach dem Herunterladen von Git finden Sie in diesem Handbuch Informationen zur Installation.

Git-Repository initialisieren

Bevor wir beginnen, unsere Dateien mit Git zu verfolgen, müssen wir Git für den Ordner initialisieren, den Git überwachen soll.

In einfachen Worten, Git konvertiert einen Ordner in ein Repository, damit sein Inhalt von ihm verfolgt werden kann.

So initialisieren Sie einen Ordner in einem Git-Repository:

Auf einem Windows-basierten System müssen wir mit der rechten Maustaste auf den Ordner klicken (wir möchten von Git verfolgt werden) und dann auf "Git Bash Here" klicken . Dies öffnet eine Eingabeaufforderung wie ein Fenster, in dem wir mit Git über die Git-Befehle interagieren können.

Hinweis: Wann immer wir mit Git interagieren möchten, werden wir über dieses Git Bash-Fenster mit Git-Befehlen interagieren. Beachten Sie auch, dass sich die Git-Befehle für Windows- und Unix-basierte Systeme nicht unterscheiden.

Im Git Bash-Fenster müssen wir den folgenden Befehl eingeben:

git init

Dieser Befehl initialisiert den Ordner. Grundsätzlich konvertiert es diesen Ordner in ein Git-Repository.

Im Rahmen dieses Initialisierungsprozesses wird auch ein .git-Ordner (ein versteckter Ordner) in diesem Repository erstellt. Diese enthält alle Dateien, die Git benötigt, um alle an diesem Repository vorgenommenen Änderungen zu verfolgen.

Dies ist jedoch nur ein normaler Ordner wie andere Ordner, die wir auf dem System haben. In der Git-Terminologie wird dies immer noch als Repository oder lokales Repository bezeichnet, um genau zu sein.

Auf einem Unix-basierten System navigieren wir einfach zu dem Verzeichnis (das Sie von Git verfolgen möchten) und führen den Befehl git init aus. Dadurch wird dieses Verzeichnis in ein Git-Repository konvertiert.

Repository-Status

Wenn wir jederzeit sehen möchten, was von Git in einem Repository verfolgt wird, können Sie dies tun, indem Sie den folgenden Befehl eingeben:

git status

Wir werden uns diesen Befehl später in diesem Beitrag genauer ansehen.

Denken Sie vorerst daran, wenn wir sehen möchten, was von Git in einem Repository verfolgt wird, können wir dies mit diesem Befehl tun.

Verfolgen eines Repositorys

Obwohl wir den Ordner als Git-Repository initialisiert haben, wird sein Inhalt nicht automatisch nachverfolgt. Wir müssen Git anweisen, seinen Inhalt zu überwachen.

Dazu verwenden wir den Befehl git add . Die Syntax für diesen Befehl lautet wie folgt:

git add file [file] [file..]
Hinweis: Alles, was in den eckigen Klammern [] eingeschlossen ist, ist optional. Dies gilt für alle in diesem Beitrag aufgeführten Git-Befehle.

Wir können entweder eine einzelne Datei oder mehrere Dateien angeben, die von Git verfolgt werden sollen.

Wenn Git bestimmte Dateien überwachen soll, die im Repository vorhanden sind, können wir dies tun, indem wir den individuellen Dateinamen jeder Datei angeben, die wir verfolgen möchten.

Wenn wir Dateien verfolgen möchten, die zu einem bestimmten Dateityp gehören, können wir dies tun, indem wir die Dateierweiterung angeben, wie unten gezeigt. Dies verfolgt alle Dateien, die mit der Erweiterung .txt enden.

$ git add *.txt

Wenn Git alle im Respository vorhandenen Dateien verfolgen soll, lautet die Syntax wie folgt.

$ git add .

Let’s say we have the following files present within our repository:

As you can see even the .git folder has been created as part of the initialization process. Originally this folder was hidden — I had to change the folder properties to make it visible (just to show it to you all).

This is how a .git folder looks, immediately after the git init command is executed.

This is how the contents of the .git folder look after a few transactions have been done to the repository.

To check what all files are currently being tracked by Git, we can make use of the git status command:

$ git status On branch master No commits yet Untracked files: (use “git add …” to include in what will be committed) HelloWorld.html Notes.txt README.md nothing added to commit but untracked files present (use “git add” to track)

Looking at the output of the git status command, it indicates that none of the files are currently being tracked by Git.

Let’s go ahead and add these files so that they get tracked by Git.

The command for adding these files is as shown below:

$ git add HelloWorld.html Notes.txt

Now, let’s execute the git status command and check its output.

$ git status On branch master No commits yet Changes to be committed: (use “git rm — cached …” to unstage) new file: HelloWorld.html new file: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As we can see, we have the HelloWorld.txt and the Notes.txt files present within the staging area that are waiting to be committed.

The README.md file isn’t being tracked at all, as we didn’t include this file within the git add command which we executed earlier.

When we executed the git add command, Git staged all the files which were specified as part of the input to this command.

Until we commit these files, Git won’t start tracking these files.

Committing Staged Files

Let’s commit these staged files by typing the command shown below.

$ git commit -m ‘Initial Commit’

git commit is the command which is used to commit any staged files, -m is used to specify the comments for this commit operation.

If we would like to view all the commit operations that have been performed, we can do it by typing the git log command, as shown below.

$ git log commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 (HEAD -> master) Author: shahzan  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

Whenever any change is done to a file which is being tracked by Git, we need to re-stage those files and re-commit them again. Until those files are not re-staged and re-committed, they will be tracked by Git.

I have done some minor changes to the Notes.txt file, let’s see what Git has got to say about these changes by executing the git status command.

$ git status On branch master Changes not staged for commit: (use “git add …” to update what will be committed) (use “git checkout — …” to discard changes in working directory) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md no changes added to commit (use “git add” and/or “git commit -a”)

Looking at the above output block, it is clear that the file Notes.txt has been modified and the changes are not staged for commit.

We make use of the same git add command to re-stage the file.

$ git add Notes.txt [email protected] MINGW64 /d/Medium Post Pics/Git/Source Code (master) $ git status On branch master Changes to be committed: (use “git reset HEAD …” to unstage) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As you can notice from the above output block, the file has been staged and is waiting to be committed.

Again, we make use of the same git commit command to re-commit the staged file.

$ git commit -m ‘Notes.txt file updated’ [master 184fcad] Notes.txt file updated 1 file changed, 3 insertions(+), 1 deletion(-)

Let’s execute the git log command and see if the commit has been successful.

$ git log commit 184fcad4185296103cd9dba0da83520399a11383 (HEAD -> master) Author: shahzans  Date: Sun Apr 28 01:15:38 2019 +0100 Notes.txt file updated commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 Author: shahzans  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

As you may notice in the above output block, both the commit operations are being displayed.

Ignoring Files

Within the repository, there may be files that hold sensitive data or log data, which we don’t want to be tracked by Git under any circumstances.

.gitignore is the file within which we can specify all the files we don’t want Git to keep track of.

$ touch .gitignore

The syntax to create this file is as shown above.

Let’s say that I do not want Git to track any file ending with the .md extension.

Before adding *.md to the .gitignore file, have a look at the output of the git status command as shown in the output block below.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore README.md nothing added to commit but untracked files present (use “git add” to track)

As you may notice, we have .gitignore and README.md being shown as untracked files.

After adding *.md to the .gitignore file, the git status is as shown in the output block below.

As you may notice, we now just have .gitignore being shown as an untracked file.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore nothing added to commit but untracked files present (use “git add” to track)

You can either specify an individual filename or a wildcard entry within the .gitignore file.

The Wrap-Up

Git is a very powerful tool and there is a lot more you could do with it, such as branching, merging, pull and push request and much more.

Just in case you’re interested in learning more about Git, here is a course that I would recommend you to enroll (affiliate link).

Before you say goodbye…

Let’s keep in touch, click here to enter your email address (Use this link if the above widget doesn’t show up on your screen).

Thank you so much for taking your precious time to read this post.