2017-04-01 2 views
1

Ich mache eine i nteractive rebase und versuchen, alle bin und obj Ordner aus meiner Geschichte zu entfernen. Die Ordnerstruktur meiner Repo ist wieIst dies der richtige Weg zu Gitignore-Dateien?

MyRepo 
    MyClass 
     . 
     . 
     bin 
     obj 
     . 
    MyTestClass 
     . 
     . 
     bin 
     obj 
     . 
    . 
    . 
    . 

ich meine erste geändert begehen und fügte hinzu, eine .gitignore mit Inhalt

/MyClass/bin 
/MyClass/obj 
/MyTestClass/bin 
/MyTestClass/obj 

und setzen in MyRepo.

Allerdings, wenn ich zu begehen gehe ich immer noch die Dateien sehen, ich will nicht sind (.exe, .pbd, etc.)

+1

Sie gingen also zu commit, wo die Dateien an erster Stelle hinzugefügt und nur mit dieser Änderung geändert wurden? Nun .... Sie müssen auch die Dateien (auf der gleichen Änderung Aktion) rm, damit sie vorwärts gehen. Replizieren Sie alle folgenden Revisionen aus dem ursprünglichen Zweig mit cherry-pick (... oder sogar mit filter-branch) und dann wäre es so, als ob diese Dateien nie in der Verzweigung existierten. – eftshift0

+0

@Edmundo Können Sie einen Überblick über die Befehlsfolge geben, um dies zu tun? Ich stelle mir vor, ich beginne mit 'git rebase -i --root', ändere dann das erste Commit in' edit' anstelle von 'pick', dann, sobald die Rebase startet, gebe ich' git commit --ammend', füge das '.gitignore hinzu 'Datei, führe einen' git rm' auf den Dateien, die unter den 'Gitignore' fallen, dann commit ?? – user7127000

+0

aaahhh ... konnte nicht folgen. Folgendes würde ich tun. Richten Sie zuerst zwei Zweige in der Revision ein, in der die Dateien hinzugefügt wurden, und überprüfen Sie den Zweig, in dem die Dinge korrigiert werden: '' 'git branch fix-start ; git checkout -b korrigierter-Zweig '' '. Ändern Sie nun die .gitignore-Datei, um die richtigen Werte zu haben (falls nicht schon) und löschen Sie auch die Dateien, die "falsch" hinzugefügt wurden (kann '' 'git rm --cache''', wenn Sie sie behalten wollen dein Arbeitsbaum). Jetzt wird '' 'git commit --amend --no-edit''', damit Sie eine" sauber korrigierte Revision "erhalten. Weitere Informationen zur nächsten Nachricht – eftshift0

Antwort

0

Der beste Weg, um Dateien zu ignorieren, wird mit http://gitignore.io Das zweite ist, zu verstehen, dass alle Muster, die Sie einfügen, Dateien ignorieren, die nicht festgeschrieben (nicht verfolgt) sind. Wenn das versehentlich geschieht, ist git rm --cached dein Freund.

Verwandte Themen