Ignorieren versionierter Dateien in Git

20
Ignorieren versionierter Dateien in Git © Stephan Partzsch, 2015 1

Transcript of Ignorieren versionierter Dateien in Git

Ignorierenversionierter!Dateien

in#Git

©"Stephan"Partzsch,"2015 1

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

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

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

Neuer%Versuch!

©"Stephan"Partzsch,"2015 5

Ignorieren(versionierter(Dateien!!skip!worktree

• Normale)Git-Rou0nen)bleiben)erhalten

• Ignoriert)bewusst)Änderungen)im)Worktree

• Einstellung)wird)nicht)überschrieben!!!

©"Stephan"Partzsch,"2015 6

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

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"ausführt

• Script"wird"nach"erstem"Checkout"gestartet"

©"Stephan"Partzsch,"2015 13

Beispiel©"Stephan"Partzsch,"2015 14

Beispiel'–'Git$Repository$anlegen

// Create git repository$ mkdir git-test$ cd git-test$ git initInitialized empty Git repository in …

©"Stephan"Partzsch,"2015 15

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

Beispiel'–'Datei&verändern$ echo ‘here are some changes’ >> file01.txt$ git statusOn branch masterChanges 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

Beispiel'–'Datei&ignorieren

$ git update-index --skip-worktree file01.txt$ git statusOn branch masternothing to commit, working directory clean

©"Stephan"Partzsch,"2015 18

Beispiel'–'Datei&wieder&berücksich0gen$ git update-index --no-skip-worktree file01.txt$ git statusOn branch masterChanges 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

English!blog!post

h"p://blog.stephan0partzsch.de/how0to0ignore0changes0in0tracked0files0with0git

@StephanPartzsch

©"Stephan"Partzsch,"2015 20