2017-02-06 1 views
1

Ich habe ein Problem mit einem Projekt in einem Git-Repository gespeichert. Ich habe drei verschiedene Zweige erstellt (Master, v1, v2) und manchmal Updates ich Zweige v1, v2 den Inhalt aus dem Master-Zweig durch diesen Code Download:Datei jetzt entfernen mit Gitignore ignorieren (nur aus einem Ordner)

git checkout master 
git pull 
git checkout release/demo 
git merge master 
git push 

In diesem Projekt, das ich habe einen Ordner mit dem Namen "image" (in allen Zweigen vorhanden), und ich muss den Inhalt dieses Ordners (mit einigen Ausnahmen) während der Zusammenführung nicht synchronisieren. Um das zu tun, ich habe eine .gitignore Datei mit diesem Code erstellt:

* 
!.gitignore 
!placeholder_300_150.png 
!placeholder_450_50.png 

Das Problem ist, dass die verschiedenen Zweige bereits mehrere Versionen verschiedener Dateien in diesem Ordner enthalten, und dies führt zu vielen Problemen bei der verschmelzen. Wie kann ich alle Versionen der ignorierten Datei aus meinem Repository löschen (wenn möglich, ohne an allen Projekten, sondern nur an diesem Ordner zu arbeiten)?

Antwort

0

Wenn ich nicht falsch liege, möchten Sie Ihre image Verzeichnis während commit/pull/push ignorieren. Löschen Sie dazu Ihre git cache. Fügen Sie das Verzeichnis image in Ihre Datei .gitignore hinzu.

$ git rm --cached -r image 

# add just image in .gitignore file 
image/ 

# add, commit and push the changes to remote 
$ git add . 
$ git commit -m 'Updated .gitignore' 
$ git push origin HEAD 
+0

Ja, es ist korrekt, aber wenn ich alle meine git im Cache entfernen, verursache ich Probleme in einem anderen Ordner. Ich kann die Operation auf diesen Ordner beschränken? –

+0

Ja. Sie können den Cache für das Image-Verzeichnis mit 'git rm --cached -r image' entfernen. –

+0

Danke! Ich muss das auf jedem Ast machen, nicht nur auf Meister, oder? –

Verwandte Themen