Eine kleine Anleitung für Git
Erstellen eines Git Repros#
Erzeugen mit:
Vom Server holen mit:
1
|
#> git clone remote user@server:path
|
Abgleich#
- hochschieben
git push
- herunterladen
git pull
- lokales repository mit einem Remote Repository verbinden
git remote add origin user@server:path
Neues Git Repository anlegen und mit vorhanden Daten befüllen#
Szenario: Ich habe ein bißchen Sourcecode und möchte den jetzt in ein Git
Repository wandeln.
Auf dem Git Server wird dazu folgendes gemacht
1
2
3
4
|
scotty:/home/git # mkdir test2.git
scotty:/home/git # cd test2.git/
scotty:/home/git/test2.git # git init --bare
Initialisierte leeres Git-Projektarchiv in /home/git/test2.git/
|
D.h. Zuerst wird ein leeres Verzeichnis angelegt, anschliessend in
dieses Verzeichniss gewechselt und dieses dann zu einem git
Verzeichnis gemacht. Wenn man einen extra User hat (z.B git), sollte
man das entweder unter diesem User tun, oder dem User Schreibreichte
auf die Dateien und das erzeugte Verzeichnis geben.
Auf dem Client mit dem vorhandenem Projektverzeichniss:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
~/Dokumente/ct/ $> git init
Initialisierte leeres Git-Projektarchiv in
/home/stephan/Dokumente/ct/.git/
~/Dokumente/ct/ $> git add *
~/Dokumente/ct/ $> git commit -m 'Initiales Commit'
~/Dokumente/ct/ $> # git => der Remote User, # #> scotty Remote
Server
# test2.git remote Verzeichnis
~/Dokumente/ct/ $> git remote add origin git@scotty:test2.git
~/Dokumente/ct/ $> git push --set-upstream origin master
~/Dokumente/ct/ $> git push
Counting objects: 141, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (132/132), done.
Writing objects: 100% (141/141), 111.36 KiB, done.
Total 141 (delta 32), reused 0 (delta 0)
To git@scotty:test2.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
|
- Dieses Verzeichnis woanders wieder auschecken:
1
2
3
4
5
6
7
8
|
/tmp/ $> git clone git@scotty:test2.git
Klone nach 'test2'...
remote: Counting objects: 141, done.
remote: Compressing objects: 100% (100/100), done.
remote: Total 141 (delta 32), reused 141 (delta 32)
Empfange Objekte: 100% (141/141), 111.36 KiB, done.
Löse Unterschiede auf: 100% (32/32), done.
/tmp/ $>
|
- Änderungen einchecken und hochladen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/tmp/test2/myapp/ $> git rm \#schema.sql\#
rm 'myapp/#schema.sql#'
/tmp/test2/myapp/ $> git commit -m 'Emacs Datei entfernt'
\#schema.sql\#
[master 10239e6] Emacs Datei entfernt
1 file changed, 10 deletions(-)
delete mode 100644 myapp/#schema.sql#
/tmp/test2/myapp/ $> git push
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 285 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@scotty:test2.git
884b80a..10239e6 master -> master
/tmp/test2/myapp/ $>
|
- Änderungen in anderem Verzeichnis übernehmen:
1
2
3
4
|
~/Dokumente/ct/ $> git log
commit 884b80a9467b48837b8a120a176ec15ce36da921
Author: Stephan Weissenrieder <sw@nutzerverwaltung.de>
Date: Thu Apr 4 14:23:24 2013 +0200
|
Initiales Einchecken
1
2
3
4
5
6
7
8
9
10
11
|
~/Dokumente/ct/ $> git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
Von scotty:test2
884b80a..10239e6 master -> origin/master
Aktualisiere 884b80a..10239e6
Fast-forward
myapp/#schema.sql# | 10 ----------
1 file changed, 10 deletions(-)
|