Warum sollte ich pushen, wenn ich alleine in einem lokalen Repository arbeite?

21

Ich interagiere mit Git über GitHub für Windows , was lustig ist, da ich mein Repository nie auf GitHub pushen werde. Ich arbeite alleine daran und es ist nur für mich bestimmt. Ich habe festgestellt, dass meine Commits unter "nicht synchronisierte Commits" und unter "Verlauf" unter "Keine Commits" aufgeführt sind. Was bringt mich zu der Frage, was ich erreichen werde, wenn ich außer meinen unter "Verlauf" aufgelisteten Commits drücke?

Moshe Revah
quelle
14
Es gibt einen erheblichen Mangel an Verständnis in der Frage, auf den hingewiesen werden sollte: Wenn Sie nichts aus der Ferne übertragen haben, befindet sich Ihre gesamte Arbeit im lokalen Repository auf der Festplatte. Verliere deine Maschine, verliere alles, was du jemals getan hast.
Lars Viklund

Antworten:

40

Sie sind technisch korrekt - Sie müssen nicht wirklich pushen, wenn Sie den Code mit niemandem teilen.

Andererseits verfügt Ihr Laptop über eine Festplatte, die vom niedrigsten Bieter erstellt wurde. Ihr Haus könnte abbrennen, bevor die Festplatte ausfällt. Möglicherweise möchten Sie Ihren Code aus der Ferne anzeigen. Oder teilen Sie es mit jemandem.

Bei Github muss jetzt alles öffentlich sein oder Sie müssen für private Repositories bezahlen. Wenn du es also für dich behalten willst, solltest du dir Bitbucket ansehen, mit dem du Git machst, aber auch kostenlose private Repos.

Eine andere Möglichkeit wäre, Ihr Git-Repository an einem Ort zu speichern, der remote gesichert wird. Dies bietet jedoch nur wenige Vorteile, anstatt heutzutage nur einen Cloud-SCM-Anbieter zu verwenden.

Wyatt Barnett
quelle
BitBucket bietet praktisch unbegrenzt viele private Repos kostenlos an .
Es gibt viele Gründe zu pushen. Der Workflow ändert sich wirklich nicht so sehr. Sie arbeiten, legen fest, legen fest, beenden einen Workflow und drücken ...
Rig
7

Es gibt noch einen weiteren Grund, warum Sie ein Repo eröffnen möchten (auch wenn es auf die eine oder andere Weise lokal ist): Workstations .

Ich kenne Sie nicht, aber ich arbeite auf 4 verschiedenen Computern (1 PC zu Hause, 1 Laptop, 1 Office-PC und 1 Office-Laptop). Durch das Übertragen von Änderungen auf einen ordnungsgemäß eingerichteten Git-Server auf dem Server meines Unternehmens wird die Synchronisierung schnell und einfach schmerzlos. Da Git ein DVCS ist, können Sie diesen Vorteil nutzen: Es sind nicht nur Backups, sondern alle verschiedenen Codebasen, an denen ich arbeite, können einfach zusammengeführt, überprüft und analysiert werden.

Es kann lokal sein, wenn Ihr Heim-PC beispielsweise der "Server" (oder der Ursprung) ist und Sie einen Heim-Laptop haben - auf diese Weise können Sie leicht synchron bleiben.

Nebenbemerkung : Die Leute sagen oft "Ich würde lieber Dropbox (oder einen anderen Synchronisierungsdienst) verwenden". Die riesige Menge an Objekten, die ein Git-Repo hat, macht es lächerlich, Dropbox so zu benutzen. Es ist eine Option, aber ich würde nicht sagen, eine gute.

AeroCross
quelle
+1, ich würde definitiv dasselbe in deinem Fall tun. Was machst du, wenn du vergessen hast zu Hause zu pushen und jetzt bei der Arbeit bist?
Moshe Revah
2
@Zippoxer Konzentriere dich auf eine andere Aufgabe und füge sie später zusammen.
Bytebuster
Genau das, was @bytebuster gesagt hat. Das ist das Schöne an den DVCS! (Obwohl mit genug Übung, werden Sie nicht wieder vergessen!)
AeroCross
Alternativ: Arbeite an einem Neben- / Hobbyprojekt, um dich zu entspannen oder neue Ideen zu entdecken usw. :-)
johannes
6

Als verteiltes SCM unterscheidet git zwischen den Konzepten "Erstellen eines Schnappschusses der Arbeitskopie" (Festschreiben) und "Repositorys synchronisieren" (Push / Pull / Fetch).

Wenn Sie immer nur einen lokalen Klon Ihres Repositorys haben, ist Push nicht sinnvoll. Mit Github haben Sie jedoch einen anderen Klon (den auf Github), und das Übertragen Ihrer Änderungen hat mindestens einen Vorteil: das Sichern. Wenn Ihr Computer abstürzt, haben Sie noch alles auf Github geschoben.

Natürlich ist das nicht der Hauptzweck von Github. github ist für die gemeinsame Nutzung von Code vorgesehen. Wenn sich Ihr Projekt auf github befindet, können Sie anderen erlauben, von dort abzurufen, Ihr Projekt zu klonen, auf Abrufanforderungen von ihren Klonen zu reagieren oder vertrauenswürdigen anderen Push-Zugriff auf Ihr Repository zu gewähren.

Ein weiterer Grund für Push ist, wenn Sie mehrere lokale Klone verwenden. Dies kann für verschiedene Dinge nützlich sein: Beispielsweise möchten Sie möglicherweise gleichzeitig an zwei verschiedenen Zweigen arbeiten, oder Sie möchten möglicherweise destruktive Vorgänge in Ihrem Repository ausprobieren. Wenn alles wie beabsichtigt funktioniert, behalten Sie den modifizierten Klon bei (oder verschieben Sie Ihre Änderungen zurück zum ursprünglichen Repo). Wenn die Dinge jedoch nach Süden gehen, können Sie einfach den durcheinandergebrachten Klon löschen und zum ursprünglichen Klon zurückkehren (der noch unverändert ist). .

Einige Leute verwenden sogar Git für die Bereitstellung: Die Produktionsversion ist auch ein Git-Repo, und das Aktualisieren auf eine neuere Version ist eine Frage des Abrufens und Auscheckens (offensichtlich funktioniert dies nur, wenn Sie keinen Build-Schritt benötigen). Ich würde es nicht unbedingt für ernsthafte Dinge empfehlen, aber für kleine Dinge ist es eine einfache und pragmatische Lösung.

tdammers
quelle