2010-05-25 9 views
10

Mein Arbeitsplatz verwendet Subversion für die Quellcodeverwaltung, so habe ich mit git-svn für die Vorteile meiner eigenen Zweige herumspielen, commit so oft ich möchte, ohne das Haupt-Repo zu berühren, etc.Git zwingen vollständige Synchronisierung zum Master

Da mein git svn checkout lokal ist, habe ich es auch auf eine Netzwerkfreigabe geklont, um als Backup zu fungieren. Mein Gedanke ist, dass, wenn mein Desktop einen Dump macht, ich zumindest das Repo auf der Netzwerkfreigabe haben werde, um Änderungen zu erhalten, die ich noch nicht nutzen konnte.

Mein Workflow ist vom Desktop zu arbeiten, Änderungen vorzunehmen, Commit usw. Am Ende des Tages möchte ich das Repo auf der Netzwerkfreigabe mit allen meinen aktuellen Änderungen aktualisieren. Ich hatte den Repo auf der Netzwerkfreigabe unter Verwendung git clone repo_on_my_desktop eingerichtet und dann das Repo auf der Netzwerkfreigabe mit git pull origin master aktualisiert. Das Problem, auf das ich stoße, ist, wenn ich einen git rebase benutze, um mehrere Commits zu quetschen, bevor ich zum Haupt-SVN-Repository komme. Wenn ich dies tue, bekomme ich Zusammenführungskonflikte auf dem Repo auf der Netzwerkfreigabe, wenn ich versuche, nachts zu sichern.

Gibt es eine Möglichkeit, einfach vollständig mit dem Repository auf meinem Desktop zu synchronisieren, ohne eine neue git clone jede Nacht zu machen?

Antwort

8

Zwei Anmerkungen:

1/Ich würde empfehlen, entweder bare repo oder eine bundle mit (eine Datei, leichter zu bewegen) für Ihre Netzwerkfreigabe

2/Ich würde lieber als Remote hinzufügen network_repo zu Ihr Desktop-Repo und drücken Sie von dort (git push --force network_repo master): Sie bleiben in Ihrem Arbeits-Repo.

25

Sie sollten keine Rebase erstellen, wenn Sie beabsichtigen, aus einem anderen Repo zu ziehen.

Wenn Sie nicht zwingende Änderungen in der Netzwerkfreigabe dagegen haben, können Sie dies tun:

git fetch origin master 
git reset --hard origin/master 

Dies wird den lokalen Master auf den Ursprung Master zurückgesetzt.

Warnung: Dies ist ein hart zurückgesetzt, werden alle Änderungen verloren (begangen * oder nicht).

Aber ich nehme an, dass Sie dort wirklich keine Änderungen haben, und es ist meistens nur ein Backup.

* Hinweis: technisch gesehen, sind festgeschriebene Änderungen nicht verloren, bis sie aus dem Reflog ablaufen, aber in jeder Hinsicht sind sie effektiv verloren.

+0

Nein, es entfernt nicht die überflüssigen Dateien. – felixh

Verwandte Themen