Oft passiert es das wir beim git pull oder git push in Konflikten enden.
Meistens sind diese Probleme schnell gelöst wenn man weiss ob gegenüber oder lokal als neues Stück gelten soll.

Das folgende sollte zur Lösung helfen:

Im einzelnen

Konflikt behaftete Dateien grundsätzlich finden:
grep -lr '<<<<<<<' ./

Sind die Änderungen der Datei(en) bekannt oder fremd?

Zum detaillierteren ansehen:

git diff <pfad-und-dateiname>

Entscheidung:

Das gegenüber oder die eigenen Änderungen übernehmen?

Um die eigenen Änderungen zu behalten:

git checkout --ours <pfad-und-dateiname>

Um die Änderungen von der anderen Seite zu akzeptieren:

git checkout --theirs <pfad-und-dateiname>

Sollen alle meine Änderungen übernommen werden:

grep -lr '<<<<<<<' . | xargs git checkout --ours

Sollen alle Änderungen von der gegenüber liegenden Seite übernommen werden:

grep -lr '<<<<<<<' . | xargs git checkout --theirs

 

Für updates aus Community Projekten wollen sie vermutlich die gegenüberliegende Seite immer akzeptieren.
Wichtig ist das Ihre eigenen Änderungen zuvor mit einem commit gesichert haben… mindestens und hoffentlich in einem eigenen branch erstellt! Falls doch etwas zu viel automatisiert vorgenommen wurde kann das besser wieder gefunden und nachgearbeitet werden.

Hinweis:

Denken sie über „staging“ Bereiche für Ihre „branches“ und den „master“ nach!
stable, testing, unstable sowie „versionen“ z.B. als „tags“ und/oder „branches“

Viel Erfolg!

 

Andere Artikel: