Ignorieren
versionierter!Dateien
in#Git
©"Stephan"Partzsch,"2015 1
Ignorieren(neuer(Dateien
• .gitignore"System"für"generellen"Ausschluss"neuer"Dateien
• Automa7sch"generierte"Log9Dateien"o...
Ignorieren(versionierter(Dateien
!!assume!unchanged
• Gedacht)um)ineffiziente)Dateisysteme)zu)entlasten
• Einstellung)wird)i...
Ignorieren(versionierter(Dateien
!!assume!unchanged
• Gedacht)um)ineffiziente)Dateisysteme)zu)entlasten
• Einstellung)wird)i...
Neuer%Versuch!
©"Stephan"Partzsch,"2015 5
Ignorieren(versionierter(Dateien
!!skip!worktree
• Normale)Git-Rou0nen)bleiben)erhalten
• Ignoriert)bewusst)Änderungen)im)...
Ignorieren(versionierter(Dateien
!!skip!worktree
• !Stashen*der*Dateien*klappt*nicht,*wenn*Einstellung*ak8v*ist!
• Einstel...
Anwendung
©"Stephan"Partzsch,"2015 8
Versionierte)Datei)ignorieren
git update-index --skip-worktree <file>
©"Stephan"Partzsch,"2015 9
Versionierte)Datei)wieder&berücksich-gen
git update-index --no-skip-worktreegits <file>
©"Stephan"Partzsch,"2015 10
Ignorierte)Dateien)finden
git ls-files -v | grep ^[sS]
©"Stephan"Partzsch,"2015 11
Manko
©"Stephan"Partzsch,"2015 12
Kollabora'on
• Einstellungen+sind+nur+lokal
• Jeder+muss+die+Commands+selbst+ausführen
• Lösung:"Script,"das"alle"Commands...
Beispiel
©"Stephan"Partzsch,"2015 14
Beispiel'–'Git$Repository$anlegen
// Create git repository
$ mkdir git-test
$ cd git-test
$ git init
Initialized empty Git...
Beispiel'–'Datei&zum&Repository&hinzufügen
$ echo ‘Hello World’ > file01.txt
$ git add file01.txt
$ git commit -m ‘Adds a ...
Beispiel'–'Datei&verändern
$ echo ‘here are some changes’ >> file01.txt
$ git status
On branch master
Changes not staged f...
Beispiel'–'Datei&ignorieren
$ git update-index --skip-worktree file01.txt
$ git status
On branch master
nothing to commit,...
Beispiel'–'Datei&wieder&berücksich0gen
$ git update-index --no-skip-worktree file01.txt
$ git status
On branch master
Chan...
English!blog!post
h"p://blog.stephan0partzsch.de/how0to0ignore0changes0in0
tracked0files0with0git
@StephanPartzsch
©"Stepha...
Nächste SlideShare
Wird geladen in …5
×

Ignorieren versionierter Dateien in Git

261 Aufrufe

Veröffentlicht am

Wie vermeidet man, das Konfigurationsdateien o.ä. aus Versehen lokal überschrieben und committed werden?
Gitignore hilft leider nicht, da die Dateien bereits von Git versioniert sind.
Eine Lösung bietet der Git-Befehl 'update-index'. Zwei Optionen stehen hier zur Verfügung. Welche das sind und wie sie sich unterwscheiden, aber vorallem welche Option am besten geeignet ist, zeigt diese Kurz-Präsentation.
Weitere Details finden sich in diesem Blogpost: http://blog.stephan-partzsch.de/how-to-ignore-changes-in-tracked-files-with-git/

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
261
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Ignorieren versionierter Dateien in Git

  1. 1. Ignorieren versionierter!Dateien in#Git ©"Stephan"Partzsch,"2015 1
  2. 2. Ignorieren(neuer(Dateien • .gitignore"System"für"generellen"Ausschluss"neuer"Dateien • Automa7sch"generierte"Log9Dateien"oder"Build9Dateien • .gitignore"funk7oniert"nicht"bei"versionierten"Dateien ©"Stephan"Partzsch,"2015 2
  3. 3. Ignorieren(versionierter(Dateien !!assume!unchanged • Gedacht)um)ineffiziente)Dateisysteme)zu)entlasten • Einstellung)wird)in)einigen)Fällen)überschrieben • git reset --hard • Pull)neuerer)Version)aus)dem)Remote@Repository) ©"Stephan"Partzsch,"2015 3
  4. 4. Ignorieren(versionierter(Dateien !!assume!unchanged • Gedacht)um)ineffiziente)Dateisysteme)zu)entlasten • Einstellung)wird)in)einigen)Fällen)überschrieben • git reset --hard • Pull)neuerer)Version)aus)dem)Remote@Repository) ©"Stephan"Partzsch,"2015 4
  5. 5. Neuer%Versuch! ©"Stephan"Partzsch,"2015 5
  6. 6. Ignorieren(versionierter(Dateien !!skip!worktree • Normale)Git-Rou0nen)bleiben)erhalten • Ignoriert)bewusst)Änderungen)im)Worktree • Einstellung)wird)nicht)überschrieben!!! ©"Stephan"Partzsch,"2015 6
  7. 7. Ignorieren(versionierter(Dateien !!skip!worktree • !Stashen*der*Dateien*klappt*nicht,*wenn*Einstellung*ak8v*ist! • Einstellung*für*betroffene*Dateien*müssen*vorher*manuell* deak8viert*werden ©"Stephan"Partzsch,"2015 7
  8. 8. Anwendung ©"Stephan"Partzsch,"2015 8
  9. 9. Versionierte)Datei)ignorieren git update-index --skip-worktree <file> ©"Stephan"Partzsch,"2015 9
  10. 10. Versionierte)Datei)wieder&berücksich-gen git update-index --no-skip-worktreegits <file> ©"Stephan"Partzsch,"2015 10
  11. 11. Ignorierte)Dateien)finden git ls-files -v | grep ^[sS] ©"Stephan"Partzsch,"2015 11
  12. 12. Manko ©"Stephan"Partzsch,"2015 12
  13. 13. Kollabora'on • Einstellungen+sind+nur+lokal • Jeder+muss+die+Commands+selbst+ausführen • Lösung:"Script,"das"alle"Commands"ausführt • Script"wird"nach"erstem"Checkout"gestartet" ©"Stephan"Partzsch,"2015 13
  14. 14. Beispiel ©"Stephan"Partzsch,"2015 14
  15. 15. Beispiel'–'Git$Repository$anlegen // Create git repository $ mkdir git-test $ cd git-test $ git init Initialized empty Git repository in … ©"Stephan"Partzsch,"2015 15
  16. 16. Beispiel'–'Datei&zum&Repository&hinzufügen $ echo ‘Hello World’ > file01.txt $ git add file01.txt $ git commit -m ‘Adds a new file.’ [master (root-commit) a6053cf] Adds a new file. 1 file changed, 1 insertion(+) create mode 100644 file01.txt ©"Stephan"Partzsch,"2015 16
  17. 17. Beispiel'–'Datei&verändern $ echo ‘here are some changes’ >> file01.txt $ git status On branch master Changes not staged for commit: (use “git add <file>...” to update what will be committed) (use “git checkout -- <file>...” to discard changes in working directory) modified: file01.txt no changes added to commit (use “git add” and/or “git commit -a”) ©"Stephan"Partzsch,"2015 17
  18. 18. Beispiel'–'Datei&ignorieren $ git update-index --skip-worktree file01.txt $ git status On branch master nothing to commit, working directory clean ©"Stephan"Partzsch,"2015 18
  19. 19. Beispiel'–'Datei&wieder&berücksich0gen $ git update-index --no-skip-worktree file01.txt $ git status On branch master Changes not staged for commit: (use “git add <file>...” to update what will be committed) (use “git checkout -- <file>...” to discard changes in working directory) modified: file01.txt no changes added to commit (use “git add” and/or “git commit -a”) ©"Stephan"Partzsch,"2015 19
  20. 20. English!blog!post h"p://blog.stephan0partzsch.de/how0to0ignore0changes0in0 tracked0files0with0git @StephanPartzsch ©"Stephan"Partzsch,"2015 20

×