Auf diese Weise teilen Sie Ihre Arbeit in einem Git-Remote-Repository



Teilen Sie Ihre lokale Arbeit mit dem Team in einem Remote-Repository, lernen Sie auch, sie zu verwalten, während Sie die Änderungen verfolgen, und bleiben Sie synchron.

Ihre Arbeit erhöht den Wert, wenn sie veröffentlicht und mit der Welt (oder Ihrem Team) geteilt wird !!!

Einstieg

Gehen Wie Sie wissen, ist es das beliebteste Versionierungswerkzeug, das heute verwendet wird Geschäft , Spur und Ausführung jede Art von Daten .
Einige der Hauptmerkmale von Git sind seine Geschwindigkeit , verteilt Natur, Sicherheit schmerzlos Verzweigen und Zusammenführen zusammen mit Kollaborativ Arbeit unter mehreren Mitwirkenden.

Beginnen wir unsere Diskussion von hier aus und konzentrieren wir uns darauf, wie Git Ihnen dabei hilft zusammenarbeiten und teilen Sie Ihre Arbeit mit den Kollegen, damit jeder gleichzeitig an demselben Code arbeiten kann, ohne die Daten des anderen zu beschädigen.
Hier ist das Konzept von Remote-Repositorys komm ins Bild.
Ich gehe davon aus, dass Sie die Kunst von beherrschen von deiner Arbeitsverzeichnis (Dateisystem) zum Bühnenbereich und schließlich verpflichten Sie es zu Ihrem lokales Repository (Datenbank).

Dies inspiriert uns, unsere Daten auf die nächste Ebene „Remote Repo“ zu verschieben, um sie in einem Remote-Repository zu veröffentlichen.

Sind meine Daten nicht bereits in einer Git-Datenbank gespeichert?

Ja ist es! Wie in der folgenden Abbildung angegeben, befinden sich Ihre Daten jedoch weiterhin in der lokale Datenbank Nach Ihnen verpflichten es und noch nicht mit Ihren Kollegen geteilt.
4-Tier-Architektur
Dieser Artikel füllt die Lücke zwischen dem Abrufen unserer Daten von Ihrem lokales Repository und bringen Sie es zur nächsten Schicht namens Remote-Repository .





Was ist ein Remote-Repository?

Eine Datenbank mit gesammelten Informationen, die an einem Ort gespeichert sind, der sein kann geteilt mit deinen Teamkollegen, indem du ihnen gibst Zugriff .
Es ist ideal auf einem gehostet Wolke oder auf einem Server (lokal oder remote) im Internet oder in Ihrem lokalen Netzwerk.
Ein Remote-Repository ist genau wie Ihr lokales Git-Repository, außer dass es im Allgemeinen als nacktes Repository deklariert wird, damit keine Arbeitskopie wie Ihre lokale vorhanden ist.
Dies geschieht, um die direkten Änderungen am Remote-Repository einzuschränken.

Nacktes Repository Das Konzept ist ein zusätzlicher Vorteil für ein Remote-Repository, um es zu behalten geschützt und für den alleinigen Zweck verwendet werden, den Code unter Teammitgliedern zu teilen.
Dies wird erreicht, indem das Remote-Repository mit dem Befehl „--gerade‘Flag zum Zeitpunkt der Initialisierung als Git-Repository.
Auf diese Weise wird Ihr Repo mit Git-Metadaten oder mit anderen Worten Git-Objekten erstellt, die nur im versteckten Verzeichnis '.git' gespeichert sind, und es steht niemandem eine Arbeitskopie zum direkten Hinzufügen von Daten zur Verfügung.
Befehl:git init --bare.

In diesem Sinne werden wir in Zukunft mehr Möglichkeiten zur Verwaltung eines Remote-Repos sehen und wie wir unsere lokale Arbeit mit der Remote synchronisieren können.



Erstellen Sie ein Remote-Repository

In erster Linie müssen Sie sich für einen Ort entscheiden, an dem Sie Ihr Remote-Repo platzieren möchten.
Es gibt einige beliebte Cloud-basierte Git-Hosting-Repositories wie - GitLab , Bit Bucket , GitHub , Perforce und CloudForge um ein paar zu nennen.
In diesem Beitrag denke ich über GitHub nach, da dies der Ort ist, an dem ich meine Git-Repositories zum ersten Mal aufbewahre. Zunächst müssen Sie sich nur bei einem GitHub-Konto anmelden und dann Erstellen Sie ein neues Repository Dadurch wird eine URL erstellt, die auf dieses Remote-Repo verweist.


Git unterstützt die Protokolle ssh, git, http und https, um eine Repository-URL zu adressieren.

Alternativ können Sie Ihr Projekt auch an einer anderen Stelle platzieren, z Linux Server Befolgen Sie die folgenden Befehle:
cd $ HOME
mkdir remote_repo
cd remote_repo
git init --bare.

Schließen Sie die Fernbedienung an Ihren lokalen Computer an

Das Anhängen einer Fernbedienung an Ihre Arbeitskopie bedeutet einfach, eine zu erstellen Zeigerreferenzhandler für die Fernbedienung oder einfach als „ Remote-Handler '.
Lassen Sie uns zu meinem Projekt springen, das ich veröffentlichen möchte.cd learnRemotes
Syntax:Git Remote hinzufügen
Befehl:git remote add origin https://github.com/divyabhushan/learnRemotes.git

'Ursprung ist der Standard Referenzname für den Remote-Handler. “ (Remote-Name muss ein relevanter Name sein)
Mal sehen, ob das funktioniert hat, mit dem Befehl:Git-Fernbedienung

Es hat :)

Drucken Sie auch die Remote-URL zusammen mit dem Namen aus:
Git Remote -v

Gut gemacht! Sie können nun von Ihrem lokalen Arbeitsverzeichnis aus eine Verbindung zu Ihrem Remote-Repository herstellen.

c ++ - Programm zum Sortieren eines Arrays in aufsteigender Reihenfolge

Zeit zum Veröffentlichen

Syntax:git push --all --tags[-u | --set-upstream]
Befehl:Git Push Origin Master

Sie lesen dies also als 'Schieben Sie den Unterschied der Commits zum Ursprung vom lokalen Master' .

Wenn Sie Ihr GitHub-Konto überprüfen, müssen Ihre lokalen Commits (Daten) dort angezeigt werden.



Verfolgen von Zweigen

Sie haben Ihre Arbeit also erfolgreich im Remote-Repository veröffentlicht.
Es ist jedoch wichtig, dass Sie Ihre lokale Niederlassung einrichten Spur die Änderungen auf dem Remote-Zweig automatisch.
Verwenden Sie die ‘--set-upstreamoder-u‘Flag zusammen mit dem Befehl’ git push ’
Befehl:Git Push -u Origin Master

farbcodierte Zweige


Lassen Sie uns weiter ein neues Commit für den 'Master' -Zweig erstellen und überprüfen, wie Git es erkennt.
Befehl:Git-Status


Zeigen Sie die Tracking-Zweige im ausführlichen Modus an
Befehl:Git Branch -vv


Daher wird Git Sie jedes Mal informieren, wenn es einen Unterschied bei den Commits zwischen Ihrem lokalen und dem Remote-Repository im verfolgten Zweig gibt.
Ist das nicht cool !!!

Wie würden andere eine Verbindung zu Ihrer Fernbedienung herstellen?

Es ist ein Kinderspiel, wenn Sie Klon ein Remote-Repository !!!

Das Klonen aus einem Remote-Repository führt also zunächst zwei Dinge aus: Ihr Fernreferenz wird automatisch hinzugefügt und die zweite Standardeinstellung Ast ist eingestellt auf Spur Remote-Zweig automatisch.

Schritt 1: Klonen Sie Ihr Remote-Repo als einen anderen Benutzer.
Befehl:Git-Klon https://github.com/divyabhushan/learnRemotes.git developer2
CD-Entwickler2

Schritt 2: Zeigen Sie die Fernbedienung und ihre URL an
Befehl:Git Remote -v


Schritt 3: Listen Sie die Tracking-Zweige auf
Befehl:Git Branch -vv


Der Spaß beginnt, wenn „Entwickler2“ seine eigene Arbeit startet und auf die Fernbedienung drückt.

Sie können sich verbinden und dazu beitragen mehr als eine Fernbedienung Repository von a einzelnes Projekt .

Zeigen Sie die Remote-Zweige an

Befehl:Git Branch -r


Verwenden Sie die Option '-a', um sowohl lokale als auch Remote-Zweige zu drucken. Versuchen Sie es in Ihrem lokalen Repo, nachdem Sie einige lokale Zweige erstellt haben.

Wie tragen andere zu Ihrer Fernbedienung bei?

Ersteinrichtung
Developer2 beschließt, einige Dinge zu ändern, wie zum Beispiel:
zu. Erstellen ein neues 'Feature' aus dem letzten Commit im 'Master' -Zweig und machen Sie eine neues Commit im Zweig 'Feature'
Befehle:
Git Checkout -b Funktion
Echo 'Funktionserweiterungen'> feature.txt
git hinzufügen. && git commit -m 'Funktionserweiterungen'

b. Erstellen ein anderer Zweig 'feature2' als ein älterer Commit im Zweig 'master'
Befehle:
Git Checkout -b Feature2 95651fb
Echo 'feature2 hinzugefügt'> feature2.txt
git hinzufügen. && git commit -m 'Feature2-Änderungen hinzufügen'

Lassen Sie uns die Zweige auf dem Entwickler2-Computer zusammen mit den Tracking-Informationen visualisieren:

Wie Sie vielleicht bemerkt haben, sind die neuen Zweige nicht so eingerichtet, dass sie die entfernten Zweige verfolgen.

Änderungen an die Fernbedienung übertragen
Lassen Sie mich zunächst den Zweig 'Feature' mit dem Flag '–set-upstream' oder '-u' auf 'remote' verschieben
Befehl:Git Push -u Ursprungsfunktion




Auf der Fernbedienung wird ein neuer Zweig erstellt, falls dieser noch nicht vorhanden ist !!!

Listen Sie in diesem Moment die Remote-Zweige mit dem Befehl 'git branch -r' auf.




Eine andere Möglichkeit, den Remote-Zweig zu verfolgen
Stellen Sie außerdem den Zweig 'feature2' so ein, dass er auch auf denselben Zweig 'feature' auf der Fernbedienung verweist
Befehl:Git-Zweig --set-upstream-to = Ursprung / Merkmal feature2



farbcodierter Zweig


Ein kurzer Tipp: Sie können den lokalen Zweigstellennamen weglassen, wenn Sie sich bereits in diesem Zweig befinden. Mit anderen Worten, der lokale Zweig ist bereits ausgecheckt.

Listen Sie die Zweige noch einmal im ausführlichen Modus auf, Befehl:Git Branch -vv



Beachten Sie, dass beide lokalen Zweige 'Feature' und 'Feature2' auf dasselbe Remote-Zweig 'Feature' verweisen.

Mit der Fernbedienung synchron bleiben - holen, ziehen und drücken

Betrachten wir den Teil, in dem die Remote-Zweig Sie verfolgen wurde bereits aktualisiert, was dann?
Eine einfache 'Git-Status' oder ein 'Git Checkout'Oder sogar die'Git Branch -vv'Befehl warnt uns mit einer solchen Nichtübereinstimmung-

wie man Palindrom in Java findet



'Developer2' muss zuerst die lokalen Referenzen und Objekte aktualisieren (' Git holen ‘) Und führen Sie dann die Remote- und lokalen Änderungen zusammen (‘ git merge ’).
Interessanterweise können Sie diese beiden Befehle durch einen einzigen 'Git Pull' -Befehl ersetzen.
Syntax:gehen ziehen

–Für nicht verfolgten Zweig
Syntax: git pull [:]
Befehl:Git Pull Origin Feature: Feature2

–Für verfolgten Zweig
Syntax: Git Pull
Befehl:Git Pull




=> In der Praxis können zu diesem Zeitpunkt Konflikte auftreten, wenn Sie der Einfachheit halber von der Fernbedienung abrufen. Ich habe eine konfliktfreie Festschreibungsänderung generiert.

Nach dem Ziehen (Abrufen und Zusammenführen) von 'developer2' müssen die neuesten Remote-Änderungen nun seine eigene Arbeit veröffentlichen.
Befehl:Git Push Origin HEAD: Funktion
Hinweis: Der Upstream-Zweig 'Feature' stimmt nicht mit dem Namen des lokalen Zweigs 'Feature2' überein. Sie müssen ihn explizit angeben



Erinnerung : 'HEAD' ist das letzte Commit für den lokalen Zweig 'feature2'.

Wann soll 'Git Fetch' verwendet werden?
Zu Zeiten, in denen Sie nur Ihre aktualisieren müssen Referenzköpfe ohne tatsächlich von der Fernbedienung herunterzuladen (zu ziehen).
Wenn die Remote-Zweige bei der Aktualisierung geändert / gelöscht wurden, müssen Sie den Befehl fetch mit dem Befehl '--Pflaume' Möglichkeit.
Als bewährte Methode müssen Sie den Befehl 'git fetch' jedes Mal ausführen, wenn Sie mit der Arbeit an Ihrem lokalen Repo beginnen.

Fernverwaltung

Schließlich möchten Sie einige Reinigungsaufgaben ausführen, z. B. das Umbenennen oder Entfernen von Fernbedienungen und Zweigen.
Diese sind genauso wichtig wie die vorherigen Befehle.

sort () in c ++

Remote umbenennen

Syntax:git remote umbenennen
Befehl:git remote benenne snv_repo svn um
Stellen Sie sich zum Beispiel einen Projektmanager vor, der 3 Projekten zugeordnet ist.


Fernreferenz löschen

Angenommen, Sie synchronisieren sich nicht mehr mit einem Remote-Repository, dann löschen Sie wahrscheinlich den Zeigerverweis darauf.
Dies hat jedoch keine Auswirkungen auf das Remote-Repository und die Arbeit anderer.

Syntax:Git Remote entfernen
Befehl:Git Remote entfernen proj1


Was wäre, wenn Sie einen lokalen Zweig eingerichtet hätten, um einen Zweig aus dem entfernten 'proj1'-Repository zu verfolgen?
Aber dein Lokale Niederlassung (und damit die Arbeit) ist sicher und immer noch vorhanden, nur seine Fernverfolgungsreferenz und Aufbau Einstellungen werden sein automatisch entfernt

Remote-Zweig löschen

Sag dich versehentlich drückte deine persönlich grobe Arbeit an einem zur Fernbedienung verzweigen aber ich möchte nicht, dass andere es noch überprüfen -
Entfernen Sie den Zweig 'unfinishedWork' vom Remote-Zweig 'svn'.
Befehl:Git Branch -vv#Listen Sie die Remote-Tracking-Zweige auf



Syntax:Git Push - Löschen
Befehl:git push --delete svn unfinishedWork


Abwicklung

Damit sind wir am Ende dieses Artikels angelangt. Wenn Sie dies gefunden haben “ Lernprogramm ”Relevant, Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.