2016-06-01 8 views
0

Ich schreibe ein Programm, das Daten in allen Zweigen eines Repo jede Woche aggregiert.Refresh meine lokale git Repo auf den Inhalt der Remote Repo

Das Programm überprüft 15-20 Repos. Im Grunde muss ich mein lokales git Repo zurücksetzen, um genau dasselbe wie das entfernte zu sein. Ich werde keine lokalen Änderungen haben. Wenn es jedoch Änderungen gibt, wechsle ich in jedem Zweig zwischen den Commits, um einen Bericht zu generieren. Die Zweige werden also immer älter sein. Nicht sicher, ob dies mit einem nachfolgenden Git Pull Aufruf zu vermasseln?

Der Code funktioniert so etwas wie dies im Moment:

git clone <repo> 
git pull --progress --verbose 

erhält dann eine Liste der Filialen und prüft jeden Zweig für neue in dieser Woche verpflichtet und aggregiert einen Bericht über sie. Übrigens, gibt es eine Möglichkeit, für alle Zweige auf einmal zu ziehen?

Was ist der beste Weg, dies zu tun?

begann ich googeln und viele Dinge wie git sauber, git holen, Git-Pull (git merge/holen) usw.

Wird Git-Pull-Arbeit hier? Oder ist es am besten, alle Dateien zu löschen und erneut zu klonen? Ich würde lieber unnötigen Overhead vermeiden, indem ich das gleiche mehrmals klonen würde, wenn git pull einfach die letzten Commits ergreift.

Danke!

Antwort

0

Fetch

A fetch werden alle Objekte im .git Verzeichnis

dies in Ihrem Fall definiert bekommen, ist nicht das, was Sie

Pull

A pull wollen erhalten alle der von der Fernbedienung geändert und in Ihr lokales Repo legen. Bei Konflikten wird ein Texteditor geöffnet, der Sie über die Überschreibungen warnt.

Um Ihre Frage zu beantworten, sollten Sie eine pull tun, weil mit großen Repositories es zu lange dauern würde, um es neu zu klonen (wenn das Programm völlig autonom ist, dann müssen Sie möglicherweise umklammern, um Konflikte zu lösen).

+0

Warum würde es Konflikte geben, wenn ich keine lokalen Änderungen vorgenommen habe? – Nick

+0

Ich gebe Ihnen nur ein Beispiel, in dem Sie 'clone' anstelle von' pull' verwenden würden –

Verwandte Themen