Git

Aus brainelectronics Wiki
Wechseln zu: Navigation, Suche

Tutorial

Git Guide

Autocompletion

Mac

Autocompletion Datei herunterladen in ~/, die Bash Datei editieren und den Download Pfad angeben

   $ curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
   $ nano .bash_profile 
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi
 

Linux

   $ sudo apt-get install bash-completion

Credits

Mac Git Autocompletion
General Git Autocompletion

Ein neues git mit dem Terminal erzeugen

   $ echo "# Name-des-Gits" >> README.md
   $ git init
   $ git add README.md
   $ git commit -m "first commit"
   $ git remote add origin https://github.com/USERNAME/Name-des-Gits.git
   $ git push -u origin master

In ein bestehendes git pushen

   $ git remote add origin https://github.com/USERNAME/Name-des-Git.git
   $ git push -u origin master

In einen Branch pushen

Um in den bereits bestehenden Branch "feature/branch" zu pushend verwendet man folgendes:

   $ git checkout feature/branch
   $ git push origin feature/branch

In zwei Repositories pushen

   $ nano .git/config

Unter [remote "origin"] die zweite Adresse/URL einfügen

   $ url = http://second-repo-url.com/USERNAME/REPOSITORY_NAME.git

Gesamtes Git auf neuen Server pushen

   $ git clone --bare git@github.com:USERNAME/REPOSITORY_NAME.git
   $ cd REPOSITORY_NAME.git
   $ git push --mirror git@myhost.com:my-new-repo-name.git
   $ cd ..
   $ rm -rf REPOSITORY_NAME.git

Zwei Git verbinden

Um zwei Git Repositories in einem "Main" Git zusammen zulegen.
Es wird in das "Main" Git gewechselt und dort der Master Branch des "Slave" Git im Unterordner "mySecond" hinzugefügt und gepusht.

   $ git subtree add --prefix=mySecond https://github.com/brainelectronics/repoSecond.git master
   $ git push

README

Bild einfügen

![alt tag](https://raw.githubusercontent.com/username/projectname/branch/path/to/img.png)
 

Überschrift

# Name des Git
 

Commit History anzeigen

   $ git log

Unterschied zwischen Commits anzeigen

Für einen Vergleich zwischen HEAD und dem Commit 2 zuvor der Datei main.c:

   $ git diff HEAD^^ HEAD main.c

Branchs

Aktueller Branch

Zum Anzeigen des aktuellen Branch verwendet man

   $ git branch

Wechsel des Branch

Zum Wechsel in einen bereits bestehenden Branch testBranch verwendet man

   $ git checkout testBranch

Git konfigurieren

Gesamte aktuelle Konfiguration anzeigen

   $ git config --list

Benutzernamen anzeigen

   $ git config user.name

Benutzernamen ändern

Global

   $ git config --global user.name "Klaus Muster"

Lokal

   $ git config --local user.name "Klaus Muster"

Mail ändern

Global

   $ git config --global user.email klaus@muster-domain.xyz

Lokal

   $ git config --local user.email klaus@muster-domain.xyz

Zeilen ausgeben

Zur Ausgabe der Zeilen je File kann folgender Befehl verwendet werden:

   $ git diff --stat 4b825dc642cb6eb9a060e54bf8d69288fbee4904

Die Tree Nummer kann unterschiedlich sein, es sollte die erste - heißt beim ersten Commit - verwendet werden. Stackoverflow Count lines in a git

Gitignore

Um ein oder mehrere Files von git push auszuschließen kann eine gitignore Datei erstellt werden mit welcher alle darin aufgelisteten Dateien oder Dateien mit der angegebenen Endung ausgeschlossen werden.

Dazu wird mit

   $ nano .git/info/exclude

die ignore Datei geöffnet und in eine neue leere Zeile die zu ignorierende Datei angegeben . Dies sieht in etwa so aus


=Credits=
[https://git-scm.com/docs/git-config Git config]
  GNU nano 2.0.6           File: .git/info/exclude                              

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

*.pyc
 

Anschließend mit CTRL+O speichern und mit CTRL+X den Editor schließen


Alternativ kann auch ein .gitignore File erstellt werden, welches auf Github gepushed werden kann. Somit muss das Ignore File nur einmal erstellt werden und kann von allen genutzt werden.

Dazu muss die Datei ".gitignore" im Verzeichnis vorhanden sein. Sollte dies der Fall sein, kann sie mit

   $ nano .gitignore

bearbeitet werden. Existiert die Datei noch nicht, wird sie durch den Befehl

   $ touch .gitignore

erstellt und im Anschluss über

   $ nano .gitignore

bearbeitet. Ein Ausschuss von Python Bytecode Document Dateien sieht dabei folgendermaßen aus:

  GNU nano 2.0.6              File: .gitignore                                  

*.pyc