Verhindern Sie, dass lokale Änderungen in Git verschoben werden
Ich habe geklonte repository und die master
Zweig in meinem repo ist die Verfolgung origin/master
. Ich erstellte eine work
Zweig und wechselte einige config Dateien, die spezifisch für meine dev-Maschine, um die app an die Arbeit.
Meinen normalen workflow zu wechseln master
verzweigen, Zusammenführen von änderungen in work
Zweig und push
diese änderungen vor. Das problem ist, dass ich nicht möchte, dass meine spezifischen chnages zu geschoben bekommen. Wenn ich zusammenfassen meine work
Filiale in master
diese änderungen werden zusammengeführt auch.
Die einzige Lösung, die ich bisher gefunden habe, ist nicht zu verpflichten, diese änderungen in work
aber das ist keine zufriedenstellende Lösung.
InformationsquelleAutor der Frage Gonçalo Marrafa | 2010-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie verhindern wollen, Begehen (daher auch pushing) diese lokale config-Dateien, die Sie nutzen könnten git update-index --assume-unchanged. Markierte Dateien mit diesem flag wird davon ausgegangen, dass sich nie ändern (bis du das flag zurücksetzen, mit --no-assume-unchanged)
InformationsquelleAutor der Antwort Mauricio Scheffer
Wenn die Dateien nicht bereits verfolgt wird, können Sie fügen Sie Sie ein .gitignore-Datei auf Ihrem lokalen repository, ansonsten müssen Sie
git update-index --assume-unchanged
wie Mauricio sagte.Weitere Informationen über .gitignore-Dateien:
http://git-scm.com/docs/gitignore
InformationsquelleAutor der Antwort Waleed Al-Balooshi
Einen Weg, dies zu lösen, ist die "cherry-pick" jede änderung von der Arbeit ab-Zweig in den master, bevor Sie die push upstream. Ich habe eine Technik, wo ich auch ein Wort wie NOCOMMIT in die commit-Nachricht für nur lokale änderungen, und verwenden Sie dann ein shell-Skript, so etwas wie dieses:
Diese cherry-picks jede änderung, die nicht markiert mit NOCOMMIT (oder-DEBUG) in den master branch.
InformationsquelleAutor der Antwort Greg Hewgill
Was Sie brauchen, ist ein .gitignore-Datei und fügen Sie alle Ihre config-Datei innerhalb der .gitignore-Datei.
Sobald Ihr .gitignore-Datei bereit ist, müssen Sie möglicherweise entfernt deine config Dateien aus dem Cache
Hier ist der Befehl:
InformationsquelleAutor der Antwort Finau