Git für Anfänger: Der endgültige praktische Leitfaden


854

Ok, nachdem ich diesen Beitrag von PJ Hyett gesehen habe , habe ich beschlossen, bis zum Ende zu springen und mit Git zu gehen .

Was ich also brauche, ist eine praktische Anleitung für Anfänger zu Git. "Anfänger" ist definiert als jemand, der weiß, wie man mit seinem Compiler umgeht, bis zu einem gewissen Grad versteht, was ein Makefile ist, und die Quellcodeverwaltung berührt hat, ohne es sehr gut zu verstehen.

"Praktisch" definiert als diese Person, die nicht sehr detailliert darauf eingehen möchte, was Git im Hintergrund tut, und sich nicht einmal darum kümmert (oder weiß), dass es verteilt ist. Ihre Antworten könnten auf die Möglichkeiten hinweisen, aber versuchen Sie, den Anfänger anzusprechen, der ein 'Haupt'-Repository auf einem' Server 'behalten möchte, der gesichert und sicher ist, und sein lokales Repository lediglich als' Client'-Ressource zu behandeln.

Damit:

Installation / Einrichtung

Mit dem Code arbeiten

Tagging, Verzweigung, Releases, Baselines

Andere

  • Beschreiben und verknüpfen Sie eine gute GUI, ein IDE-Plugin usw., die Git zu einer Ressource ohne Befehlszeile macht. Führen Sie jedoch die Einschränkungen sowie die Vorteile auf.
    • msysgit - Plattformübergreifend, in Git enthalten
    • gitk - Plattformübergreifender Verlaufs-Viewer, in Git enthalten
    • gitnub - Mac OS X.
    • gitx - Mac OS X-Verlaufsanzeige
    • smartgit - Plattformübergreifend, kommerziell, Beta
    • tig - console GUI für Linux
    • qgit - GUI für Windows, Linux
    • Git Extensions - Paket für Windows, enthält eine benutzerfreundliche Benutzeroberfläche
  • Gibt es noch andere häufige Aufgaben, die ein Anfänger kennen sollte?
  • Wie arbeite ich effektiv mit einem Subversion-Repository, das als Quellcodeverwaltungsquelle festgelegt ist?

Andere Git Anfänger Referenzen

Eintauchen in Git

Ich werde die Einträge von Zeit zu Zeit durchgehen und sie 'aufräumen', damit sie ein einheitliches Erscheinungsbild haben und es einfach ist, die Liste zu scannen - folgen Sie einfach einem "Header - kurze Erklärung - Liste der Anweisungen - Fallstricke und extra info "Vorlage. Ich werde auch auf die Einträge aus der obigen Aufzählungsliste verweisen, damit sie später leicht gefunden werden können.

Antworten:


118

Wie erstellen Sie ein neues Projekt / Repository?

Ein Git-Repository ist einfach ein Verzeichnis, das ein spezielles .gitVerzeichnis enthält.

Dies unterscheidet sich von "zentralisierten" Versionskontrollsystemen (wie Subversion), bei denen ein "Repository" auf einem Remote-Server gehostet wird, den Sie checkoutin einem "Arbeitskopie" -Verzeichnis speichern. Mit git, Ihre Arbeitskopie ist das Repository.

Führen Sie einfach git initdas Verzeichnis aus, das die Dateien enthält, die Sie verfolgen möchten.

Zum Beispiel,

cd ~/code/project001/
git init

Dadurch wird ein .git(versteckter) Ordner im aktuellen Verzeichnis erstellt.

Führen Sie zum Erstellen eines neuen Projekts git initein zusätzliches Argument aus (den Namen des zu erstellenden Verzeichnisses):

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

Um zu überprüfen, ob sich der aktuelle Pfad in einem Git-Repository befindet, führen Sie ihn einfach aus. git statusWenn es sich nicht um ein Repository handelt, wird "fatal: Kein Git-Repository" gemeldet.

Sie können das .gitVerzeichnis auch auflisten und überprüfen, ob es Dateien / Verzeichnisse enthält, die den folgenden ähnlich sind:

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/

Wenn Sie aus irgendeinem Grund ein Repository "de-git" möchten (Sie möchten die Verwendung von git zur Verfolgung dieses Projekts beenden). Entfernen Sie einfach das .gitVerzeichnis auf der Basisebene des Repositorys.

cd ~/code/project001/
rm -rf .git/

Achtung: Dies zerstört den gesamten Revisionsverlauf, alle Ihre Tags und alles , was Git getan hat. Die "aktuellen" Dateien (die Dateien, die Sie derzeit sehen können) werden nicht berührt, aber vorherige Änderungen, gelöschte Dateien usw. können nicht wiederhergestellt werden!


3
Git macht seine Objekte schreibgeschützt, daher sollten Sie rm -rf .gitdie Datenbank von git löschen.
Josh Lee

Normalerweise muss während der normalen Verwendung eine Gitignore-Datei erstellt werden, um Dateien / Bäume anzugeben, die bei der Versionierung ignoriert werden sollen. Um den letzten Teil des "De-Gitting" zu vervollständigen, müssen Sie neben dem Entfernen von Git auch die Datei entfernen. Gitignore-Datei. :)
Monoman

Wie wäre es mit nackten Repositories? Sie sind irgendwie "zentralisiert", und ich denke, sie sind eine gute Sache für viele Projekte, die eine Art Zentralisierung benötigen (z. B. Projekte, die von vielen Menschen entwickelt wurden)
Peoro

WRT wird ausgeführt, git statusum sicherzustellen, dass Sie sich in einem Repository befinden: Dies hat ein Problem: Wenn Sie die Umgebungsvariable $ GIT_DIR in Ihrer aktuellen Shell festgelegt haben, ignoriert git Ihren aktuellen Speicherort und verwendet das Repository unter $ GIT_DIR. Ich sollte wissen, dass ich gestern eine Stunde verloren habe.
Sanmiguel

110

GUIs für Git


Git GUI

In git enthalten - Über git guidie Befehlszeile ausführen und vom Windows- Installationsprogramm msysgit zum Startmenü hinzufügen.

Git GUI kann einen Großteil dessen tun, was Sie mit Git tun müssten. Einschließlich Phasenänderungen, Konfigurieren von Git und Repositorys, Push-Änderungen, Erstellen / Auschecken / Löschen von Zweigen, Zusammenführen und vielen anderen Dingen.

Eine meiner Lieblingsfunktionen sind die Verknüpfungen "Stage Line" und "Stage Hunk" im Kontextmenü, mit denen Sie bestimmte Teile einer Datei festschreiben können. Sie können das gleiche über erreichen git add -i, aber ich finde es einfacher zu bedienen.

Es ist nicht die schönste Anwendung, aber es funktioniert auf fast allen Plattformen (basierend auf Tcl / Tk)

Screenshots | ein Screencast


GitK

Auch mit git enthalten. Es ist ein Git-Verlaufs-Viewer und ermöglicht die Visualisierung des Verlaufs eines Repositorys (einschließlich der Zweige, wenn diese erstellt und zusammengeführt werden). Sie können Commits anzeigen und suchen.

Passt gut zu Git-GUI.


Gitnub

Mac OS X-Anwendung. Hauptsächlich ein Äquivalent von git log, hat aber eine gewisse Integration mit Github (wie die "Netzwerkansicht").

Sieht hübsch aus und passt zu Mac OS X. Sie können Repositorys durchsuchen. Die größte Kritik an Gitnub ist, dass es die Geschichte linear zeigt (jeweils ein Zweig) - es visualisiert nicht das Verzweigen und Zusammenführen, was bei git wichtig sein kann, obwohl dies eine geplante Verbesserung ist.

Links herunterladen, Protokoll und Screenshots ändern | Git-Repository


GitX

Beabsichtigt, ein "Gitk-Klon für OS X" zu sein.

Es kann den nichtlinearen Verzweigungsverlauf visualisieren, Commits ausführen, Commits anzeigen und suchen und einige andere nützliche Funktionen wie das "Quicklook" jeder Datei in jeder Revision (Drücken Sie die Leertaste in der Dateilistenansicht) und das Exportieren einer beliebigen Datei (per Drag & Drop).

Es ist weitaus besser in OS X integriert als git-gui/ gitkund selbst bei außergewöhnlich großen Repositorys schnell und stabil.

Das ursprüngliche Git-Repository pieter wurde kürzlich nicht aktualisiert (über ein Jahr zum Zeitpunkt des Schreibens). Ein aktiver gepflegter Zweig ist bei Brotherbard / Gitx verfügbar - er fügt hinzu: "Seitenleiste, Abrufen, Ziehen, Schieben, Remote hinzufügen, Zusammenführen, Cherry-Pick, Rebase, Klonen, Klonen zu".

Herunterladen | Screenshots | Git Repository | Brotherbard Gabel | Laullon Gabel


SmartGit

Von der Homepage:

SmartGit ist ein Front-End für das verteilte Versionskontrollsystem Git und läuft unter Windows, Mac OS X und Linux. SmartGit ist für Entwickler gedacht, die eine grafische Benutzeroberfläche einem Befehlszeilenclient vorziehen, um mit Git - dem derzeit leistungsstärksten DVCS - noch produktiver zu arbeiten.

Sie können es von ihrer Website herunterladen .

Herunterladen


TortoiseGit

TortoiseSVN Git-Version für Windows-Benutzer.

Es portiert TortoiseSVN nach TortoiseGit. Die neueste Version 1.2.1.0 Diese Version kann reguläre Aufgaben ausführen, z. B. Festschreiben, Protokoll anzeigen, Version zwei unterscheiden, Zweig und Tag erstellen, Patch erstellen usw. Weitere Informationen finden Sie in den ReleaseNotes . Willkommen, um dieses Projekt beizutragen.

Herunterladen


QGit

QGit ist ein Git-GUI-Viewer, der auf Qt / C ++ basiert.

Mit qgit können Sie den Revisionsverlauf durchsuchen, Patch-Inhalte und geänderte Dateien anzeigen und verschiedene Entwicklungszweige grafisch verfolgen.

Herunterladen


gitg

gitg ist ein Git-Repository-Viewer, der auf gtk + / GNOME abzielt. Eines der Hauptziele besteht darin, eine einheitlichere Benutzererfahrung für Git-Frontends auf mehreren Desktops bereitzustellen. Dabei wird keine plattformübergreifende Anwendung geschrieben, sondern in enger Zusammenarbeit mit ähnlichen Clients für andere Betriebssysteme (wie GitX für OS X).

Eigenschaften

  • Revisionsverlauf durchsuchen.
  • Behandeln Sie große Repositorys (lädt das Linux-Repository, über 17000 Revisionen, unter 1 Sekunde).
  • Änderungen festschreiben.
  • Einzelne Hunks inszenieren / entbühnen.
  • Änderungen rückgängig machen.
  • Zeigen Sie den kolorierten Unterschied der Änderungen in den Revisionen an.
  • Durchsuchen Sie den Baum nach einer bestimmten Revision.
  • Exportieren Sie Teile des Baums einer bestimmten Revision.
  • Geben Sie alle Referenzdaten an, die ein Befehl wie 'git log' verstehen kann, um den Verlauf zu erstellen.
  • Anzeigen und Wechseln zwischen Zweigen in der Verlaufsansicht.

Download: Veröffentlichungen oder Quelle


Gitbox

Gitbox ist eine grafische Oberfläche für Mac OS X für das Git-Versionskontrollsystem. In einem einzigen Fenster sehen Sie Zweige, Verlauf und Arbeitsverzeichnisstatus.

Der tägliche Betrieb ist einfach: Änderungen an und ohne Bühne mit einem Kontrollkästchen. Commit, Pull, Merge und Push mit einem einzigen Klick. Doppelklicken Sie auf eine Änderung, um einen Unterschied mit FileMerge.app anzuzeigen.

Herunterladen


Gity

Die Gity-Website enthält nicht viele Informationen, aber aus den Screenshots geht hervor, dass es sich um eine funktionsreiche Open-Source-OS X-Git-GUI handelt.

Download oder Quelle


Meld

Meld ist ein visuelles Diff- und Merge-Tool. Sie können zwei oder drei Dateien vergleichen und an Ort und Stelle bearbeiten (Diffs werden dynamisch aktualisiert). Sie können zwei oder drei Ordner vergleichen und Dateivergleiche starten. Sie können eine Arbeitskopie von gängigen Versionskontrollsystemen wie CVS, Subversion, Bazaar-ng und Mercurial [ und Git ] durchsuchen und anzeigen .

Downloads


Katana

Eine Git-GUI für OSX von Steve Dekorte.

Sehen Sie auf einen Blick, welche Remote-Zweige Änderungen zum Ziehen und welche lokalen Repos Änderungen zum Drücken haben. Die Git-Ops Add, Commit, Push, Pull, Tag und Reset werden ebenso unterstützt wie visuelle Unterschiede und visuelles Durchsuchen der Projekthierarchie, die lokale Änderungen und Ergänzungen hervorheben.

Kostenlos für 1 Repository, 25 US-Dollar für mehr.

Herunterladen


Sprout (früher GitMac)

Konzentriert sich darauf, Git benutzerfreundlich zu machen. Bietet eine native Cocoa-Benutzeroberfläche (Mac-ähnlich), schnelles Durchsuchen des Repositorys, Klonen, Push / Pull, Verzweigen / Zusammenführen, visuelle Unterschiede, Remote-Verzweigungen, einfachen Zugriff auf das Terminal und vieles mehr.

Durch die intuitive und einfache Ausführung der am häufigsten verwendeten Git-Aktionen macht Sprout (ehemals GitMac) Git benutzerfreundlich. Sprout ist mit den meisten Git-Workflows kompatibel und eignet sich hervorragend für Designer und Entwickler, für die Zusammenarbeit im Team sowie für fortgeschrittene und unerfahrene Benutzer.

Herunterladen | Webseite


Turm

Eine funktionsreiche Git-GUI für Mac OSX. Kostenlose 30-Tage-Testversion, 59 USD für eine Einzelbenutzerlizenz.

Herunterladen | Webseite


EGit

EGit ist ein Eclipse Team-Anbieter für das Git-Versionskontrollsystem. Git ist ein verteiltes SCM, dh jeder Entwickler verfügt über eine vollständige Kopie des gesamten Verlaufs jeder Revision des Codes, wodurch Abfragen zum Verlauf sehr schnell und vielseitig möglich sind.

Das EGit-Projekt implementiert Eclipse-Tools zusätzlich zur JGit-Java-Implementierung von Git.

Herunterladen | Webseite


Git-Erweiterungen

Open Source für Windows - Installiert alles, was Sie für die Arbeit mit Git benötigen, in einem einzigen, benutzerfreundlichen Paket.

Git Extensions ist ein Toolkit, mit dem Sie die Arbeit mit Git unter Windows intuitiver gestalten können. Die Shell-Erweiterung wird in Windows Explorer integriert und zeigt ein Kontextmenü für Dateien und Verzeichnisse an. Es gibt auch ein Visual Studio-Plugin zur Verwendung von Git aus Visual Studio.

Herunterladen

Vielen Dank an dbr für die Ausarbeitung des Git-GUI-Materials.


SourceTree

SourceTree ist ein kostenloser Mac-Client für Git, Mercurial und SVN. Es wurde von Atlassian, den Leuten hinter BitBucket, entwickelt und scheint mit jedem VC-System gleich gut zu funktionieren. So können Sie ein einziges Tool für alle Ihre Projekte beherrschen, unabhängig davon, ob diese versioniert sind. Mit vielen Funktionen und KOSTENLOS.

Experten-Ready & Feature-Packed für Anfänger und Fortgeschrittene:

Überprüfen Sie ausgehende und eingehende Änderungssätze. Kirschpickel zwischen Zweigen. Patch-Handling, Rebase, Stash / Shelve und vieles mehr.

Herunterladen | Webseite



2
Sie haben einige gute Antworten (insbesondere Gitcasts und die Push / Pull-Antwort), aber könnte ich empfehlen, sie in separate Antworten aufzuteilen? Der Fragesteller forderte Sie auf, "nicht zu versuchen, eine Reihe von Informationen in einer Antwort zusammenzufassen"!
dbr

3
Vielleicht sollten Sie TortoiseGit code.google.com/p/tortoisegit zu Ihrer Liste hinzufügen , für Windows-Gitter ...
kret

1
Gity ( macendeavour.com/gity ) ist eine Option, befindet sich aber noch in der Entwicklung (OS X)
Dave DeLong

2
Tower ("Der leistungsstärkste Git-Client für Mac") ist ein wunderschöner neuer Client für Git.
Rubiii

59

Nun, trotz der Tatsache, dass Sie darum gebeten haben, dass wir nicht "einfach" auf andere Ressourcen verlinken, ist es ziemlich dumm, wenn es bereits eine Community-gewachsene (und wachsende) Ressource gibt, die wirklich ziemlich gut ist: das Git Community Book . Im Ernst, diese über 20 Fragen in einer Frage werden alles andere als prägnant und konsistent sein. Das Git Community Book ist sowohl als HTML als auch als PDF verfügbar und beantwortet viele Ihrer Fragen mit klaren, gut formatierten und von Experten geprüften Antworten und in einem Format, mit dem Sie direkt zu Ihrem Problem springen können.

Leider, wenn mein Beitrag Sie wirklich stört, werde ich ihn löschen. Sag es einfach.


2
Wenn Sie git nicht verwenden, weil es ein DVCS ist, warum sollten Sie git überhaupt verwenden? Diese Frage ist albern und lenkt Ressourcen ab, die für andere Dinge ausgegeben werden könnten, um ein fragwürdiges Ziel zu erreichen.
Randal Schwartz

56

So konfigurieren Sie es, um Dateien zu ignorieren:

Die Möglichkeit, dass git Dateien ignoriert, die Sie nicht verfolgen möchten, ist sehr nützlich.

Um eine Datei oder einen Satz von Dateien zu ignorieren, geben Sie ein Muster an. Die Mustersyntax für Git ist ziemlich einfach, aber leistungsstark. Es gilt für alle drei verschiedenen Dateien, die ich unten erwähnen werde.

  • Eine leere Zeile ignoriert keine Dateien und wird im Allgemeinen als Trennzeichen verwendet.
  • Zeilen mit # dienen als Kommentare.
  • Die ! Das Präfix ist optional und negiert das Muster. Jedes negierte Muster, das übereinstimmt, überschreibt Muster mit niedrigerer Priorität.
  • Unterstützt erweiterte Ausdrücke und Platzhalter
    • Beispiel: Das Muster: *. [Oa] ignoriert alle Dateien im Repository, die auf .o oder .a enden (Objekt- und Archivdateien).
  • Wenn ein Muster ein Verzeichnis hat, das mit einem Schrägstrich endet, stimmt Git nur mit diesem Verzeichnis und den Pfaden darunter überein. Dies schließt reguläre Dateien und symbolische Links vom Spiel aus.
  • Ein führender Schrägstrich stimmt mit allen Dateien in diesem Pfadnamen überein.
    • Beispiel: Das Muster /*.c stimmt mit der Datei foo.c überein , nicht jedoch mit bar / awesome.c

Tolles Beispiel aus der Manpage von gitignore (5) :

$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
#       Documentation/gitignore.html
#       file.o
#       lib.a
#       src/internal.o
[...]
$ cat .git/info/exclude
  # ignore objects and archives, anywhere in the tree.
  *.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
[...]

Im Allgemeinen gibt es drei verschiedene Möglichkeiten, nicht verfolgte Dateien zu ignorieren.

1) Ignorieren Sie für alle Benutzer des Repositorys:

Fügen Sie dem Stammverzeichnis Ihrer Arbeitskopie eine Datei mit dem Namen .gitignore hinzu .

Bearbeiten Sie .gitignore so , dass es Ihren Einstellungen entspricht , für die Dateien ignoriert werden sollen / sollten.

git add .gitignore 

und verpflichten Sie sich, wenn Sie fertig sind.

2) Ignorieren Sie nur Ihre Kopie des Repositorys:

Fügen Sie die Datei $ GIT_DIR / info / exclude in Ihrer Arbeitskopie mit Ihren bevorzugten Mustern hinzu / bearbeiten Sie sie.

Beispiel: Meine Arbeitskopie ist ~ / src / project1, also würde ich ~ / src / project1 / .git / info / exclude bearbeiten

Du bist fertig!

3) Ignorieren Sie in allen Situationen auf Ihrem System:

Globale Ignoriermuster für Ihr System können in einer Datei mit dem Namen "Beliebig" gespeichert werden.

Meins heißt ~ / .gitglobalignore

Ich kann git dann über diese Datei informieren, indem ich meine ~ / .gitconfig- Datei mit der folgenden Zeile bearbeite :

core.excludesfile = ~/.gitglobalignore

Du bist fertig!

Ich finde die gitignore- Manpage die beste Quelle für weitere Informationen.


Könnte jemand bitte diesem Beitrag ein kleines, aber wichtiges Detail hinzufügen? Dies funktioniert nur für Dateien, die bereits nicht von git verfolgt werden. Um die Datei zu "entfernen", aber im Dateisystem zu belassen, benötigen Sie "git rm --cached filename". Vielen Dank!
Nikita Rybak

Ich möchte nur darauf hinweisen, dass das Hinzufügen der Zeile core.excludesfile bei mir nicht funktioniert hat. Ich musste [git config --global core.excludesfile ~ / .gitglobalignore], damit es funktioniert.
Coding District

Es gibt jetzt ein Projekt auf Github namens gitignore, das gitignore-Dateien für eine Vielzahl von Sprachen und Entwicklungsumgebungen enthält: github.com/github/gitignore
Ryan Lundy

47

Wie können Sie einen bestimmten Satz von Revisionen "markieren"?

Wie können Sie einen bestimmten Satz von Revisionen für einen bestimmten Satz von Dateien markieren, freigeben oder freigeben, damit Sie diese später jederzeit abrufen können?

Verwenden des git tagBefehls.

Um die aktuelle Revision einfach zu "markieren", würden Sie einfach ausführen.

git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'

Um die aktuellen Tags aufzulisten, führen Sie einfach git tagohne Argumente aus oder -l(Kleinbuchstabe L):

$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l
thetagname

Um ein Tag zu löschen, verwenden Sie das -dFlag:

$ git tag -d thetagname 
Deleted tag 'thetagname'
$ git tag
[no output]

Um ein bestimmtes (vorheriges) Commit zu markieren, tun Sie einfach ..

git tag [tag name] [revision SHA1 hash]

Zum Beispiel:

git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b

Hinweis: Standardmäßig erstellt git ein "leichtes" Tag (im Grunde ein Verweis auf eine bestimmte Revision). Der "richtige" Weg ist die Verwendung der -aFlagge. Dadurch wird Ihr Editor gestartet, der nach einer Tag-Nachricht fragt (identisch mit der Anfrage nach einer Commit-Nachricht. Sie können auch das -mFlag verwenden, um die Tag-Nachricht in der Befehlszeile bereitzustellen). Durch die Verwendung eines mit Anmerkungen versehenen Tags wird ein Objekt mit eigener ID, Datum, Tagger (Autor) und optional einer GPG-Signatur (unter Verwendung des -sTags) erstellt. Weitere Informationen hierzu finden Sie in diesem Beitrag

git tag mytagwithmsg -a -m 'This is a tag, with message'

Um die Tags mit Anmerkungen aufzulisten, verwenden Sie das -n1Flag, um 1 Zeile jeder Tag-Nachricht anzuzeigen ( -n245um die ersten 245 Zeilen jeder Anmerkung anzuzeigen usw.):

$ git tag -l -n1
mytagwithmsg    This is a tag, with message

Weitere Informationen finden Sie auf der Handbuchseite zu git-tag (1)


Das Git-Tag erstellt standardmäßig keine Tags, sondern nur einfache Referenzen. Sie müssen entweder -a oder -s verwenden, um ein Tag-Objekt zu erstellen (das wie beschrieben verwendet wird): rockstarprogrammer.org/post/2008/oct/16/…
Dustin

Ah, interessant. Vielen Dank, ich habe die Antwort aktualisiert, um dies widerzuspiegeln
dbr

Und wie markiert man eine zuvor festgeschriebene Revision? (Entschuldigung, es ist zu lang, also habe ich durchgesehen, habe ich etwas verpasst?)
hasen

hasen j: Info hinzugefügt, um zu antworten, im Grundegit tag tagname revision_SHA1
dbr

1
Um Tags in das Remote-Repo zu verschieben, fügen Sie --tags hinzu, wenn Sie git push verwenden (Informationen aus dem Github-Hilfebereich).
Héctor Ramos

46

Workflow-Beispiel mit GIT.

Git ist extrem flexibel und passt sich jedem Workflow an. Wenn Sie jedoch einen bestimmten Workflow nicht erzwingen, kann dies den negativen Effekt haben, dass Sie nur schwer verstehen, was Sie mit Git über den linearen "Backup" -Workflow hinaus tun können und wie nützlich Verzweigungen beispielsweise sein können .

Dieser Blog-Beitrag erklärt einen sehr einfachen, aber effektiven Workflow, der mit git sehr einfach einzurichten ist.

Zitat aus dem Blog-Beitrag: Wir betrachten origin / master als den Hauptzweig, in dem der Quellcode von HEAD immer einen produktionsbereiten Zustand widerspiegelt:

Der Workflow ist populär genug geworden, um ein Projekt zu erstellen , das diesen Workflow implementiert: Git-Flow

Schöne Darstellung eines einfachen Workflows, in dem Sie alle Änderungen in der Entwicklung vornehmen und nur dann auf Master drücken, wenn sich der Code in einem Produktionszustand befindet:

einfacher Workflow

Angenommen, Sie möchten an einer neuen Funktion arbeiten oder ein Modul umgestalten. Sie könnten einen neuen Zweig erstellen, was wir als "Feature" -Zweig bezeichnen könnten. Dies kann einige Zeit dauern und möglicherweise Code beschädigen. Sobald Ihr Feature "stabil genug" ist und "näher" an die Produktion heranrücken soll, führen Sie Ihren Feature-Zweig in die Entwicklung ein. Wenn alle Fehler nach dem Zusammenführen behoben sind und Ihr Code alle Tests bestanden hat, übertragen Sie Ihre Änderungen in den Master.

Während dieses gesamten Vorgangs finden Sie einen schrecklichen Sicherheitsfehler, der sofort behoben werden muss. Sie könnten einen Zweig namens Hotfixes haben, der Änderungen vornimmt, die schneller wieder in die Produktion übernommen werden als der normale "Entwicklungs" -Zweig.

Hier haben Sie eine Illustration, wie dieser Workflow für Funktion / Hotfix / Entwicklung / Produktion aussehen könnte (gut erklärt im Blog-Beitrag, und ich wiederhole, der Blog-Beitrag erklärt den gesamten Prozess viel detaillierter und viel besser als ich .

Git-Workflow-Beispiel


Ich bin ein git Neuling, und dieses Diagramm macht es mehr für mich verwirrend.
Finnw

Welches, das erste oder das letzte? Ich wollte den Beitrag nicht wirklich zu lang machen, aber ich werde später eine kleine Erklärung für beide Diagramme hinzufügen.
Ashwoods

Lesen Sie den vollständigen Artikel. Dieses Diagramm hat mich ebenfalls verwirrt, aber der Blog-Beitrag ist sehr gut geschrieben. Nvie.com/posts/a-successful-git-branching-model
Felipe Sabino

Ist es jetzt besser? Ich wollte nur einen groben Überblick geben, nicht den gesamten Blog-Beitrag hier erneut veröffentlichen :)
Ashwoods

39

Hier ist eine Kopie von PJ Hyetts Beitrag, da er nicht mehr verfügbar ist:

Git ist nicht schwer

23. November 2008

Wenn wir den Leuten sagen, warum sie Git über Subversion verwenden sollten, lautet die Zeile: "Git macht Subversion besser als Subversion, aber es macht viel mehr als das."

Das "viel mehr" besteht aus einer Reihe von Dingen, die Git wirklich zum Leuchten bringen, aber es kann für diejenigen, die von anderen SCMs wie Subversion kommen, ziemlich überwältigend sein.

Das heißt, nichts hindert Sie daran, Git zu verwenden, so wie Sie Subversion verwenden, während Sie den Übergang durchführen.

Angenommen, Sie haben die erforderliche Software installiert und verfügen irgendwo über ein Remote-Repository. Auf diese Weise würden Sie den Code abrufen und Ihre Änderungen mit Subversion zurückschieben:

$ svn checkout svn://foo.googlecode.com/svn/trunk foo
# make your changes
$ svn commit -m "my first commit"

Und wie würden Sie es in Git machen:

$ git clone git@github.com:pjhyett/foo.git
# make your changes
$ git commit -a -m "my first commit"
$ git push

Ein weiterer Befehl, um dies in Git zu ermöglichen. Dieser zusätzliche Befehl hat große Auswirkungen, aber für die Zwecke dieses Beitrags ist das alles, worüber wir sprechen, ein zusätzlicher Befehl.

Sehen Sie, es ist wirklich nicht so schwer.

Update: Ich wäre nachlässig , nicht auch erwähnen , dass das Äquivalent von Ihrer lokalen Kopie in Subversion Aktualisierung im Vergleich zu Git ist svn updateund git pull, respectively. In beiden Fällen nur ein Befehl.


Im ersten Beispiel sehen Sie, dass Sie zu einem relativen Pfad auschecken, ./fooaber für den get-Klon ist kein Pfad angegeben. Wohin checken Sie aus?
JD Isaacks

33

So installieren Sie Git

Unter Windows:

Installieren Sie msysgit

Es gibt mehrere Downloads:

  • Git: Verwenden Sie diese Option, es sei denn, Sie benötigen speziell eine der folgenden Optionen.
  • PortableGit: Verwenden Sie diese Option, wenn Sie Git auf einem PC ausführen möchten, ohne es auf diesem PC zu installieren (z. B. Git von einem USB-Laufwerk ausführen).
  • msysGit: Verwenden Sie diese Option, wenn Sie Git selbst entwickeln möchten. Wenn Sie Git nur für Ihren Quellcode verwenden möchten, aber den Quellcode von Git nicht bearbeiten möchten, benötigen Sie dies nicht.

Dadurch wird auch eine Cygwin-Bash-Shell installiert, sodass Sie die gitin einer schöneren Shell (als cmd.exe) verwenden können. Dazu gehört auch git-gui (über den git guiBefehl oder das Start > All Programs > GitMenü zugänglich ).

Mac OS X

Verwenden Sie das git-osx-Installationsprogramm oder installieren Sie es auch von der Quelle

Über einen Paketmanager

Installieren Sie gitmit Ihrem nativen Paketmanager. Zum Beispiel unter Debian (oder Ubuntu):

apt-get install git-core

Oder unter Mac OS X über MacPorts :

sudo port install git-core+bash_completion+doc

… Oder fink:

fink install git

… Oder Homebrew :

brew install git

Auf Red Hat-basierten Distributionen wie Fedora:

yum install git

In Cygwin finden Sie das Git-Paket im Abschnitt "Entwickeln"

Aus der Quelle (Mac OS X / Linux / BSD / etc.)

Wenn Sie unter Mac OS X die Entwicklertools installiert haben, können Sie Git sehr einfach aus dem Quellcode kompilieren. Laden Sie die neueste Version von Git als .tar.bzoder .tar.gzvon http://git-scm.com/ herunter und extrahieren Sie sie (doppelklicken Sie im Finder).

Unter Linux / BSD / etc. es sollte ähnlich sein. In Debian (und Ubuntu) müssen Sie das build-essentialPaket beispielsweise über installieren apt.

Dann in einem Terminal, cdwo Sie die Dateien extrahiert haben (Laufen cd ~/Downloads/git*/sollte funktionieren), und dann ausführen ..

./configure && make && sudo make install

Dadurch wird Git an der Standardposition installiert ( /usr/local- also gitin /usr/local/bin/git)

Sie werden aufgefordert, Ihr Passwort (für sudo) einzugeben , damit es in das /usr/local/Verzeichnis schreiben kann, auf das nur der "root" -Benutzer zugreifen kann, sodass sudo erforderlich ist!

Wenn Sie es an einem anderen Ort installieren möchten (damit die Dateien von Git nicht mit anderen Tools gemischt werden), verwenden Sie --prefixden Befehl configure:

./configure --prefix=/usr/local/gitpath
make
sudo make install

Dadurch wird die gitBinärdatei in installiert. /usr/local/bin/gitpath/bin/gitSie müssen dies also nicht jedes Mal eingeben, $PATHindem Sie die folgende Zeile in Ihre hinzufügen ~/.profile:

export PATH="${PATH}:/usr/local/bin/gitpath/bin/"

Wenn Sie keinen Sudo-Zugriff haben, können Sie ihn verwenden --prefix=/Users/myusername/binund in Ihrem Home-Verzeichnis installieren. Denken Sie daran , hinzufügen ~/bin/zu$PATH

Das Skript x-git-update-to-latest-version automatisiert vieles davon:

Dieses Skript aktualisiert meinen lokalen Klon des Git-Repos (localy at ~/work/track/git) und konfiguriert, installiert (at /usr/local/git- git describe) und aktualisiert den /usr/local/gitSymlink.

Auf diese Weise kann ich /usr/local/git/binin meiner PATHund ich verwende immer die neueste Version.

Die neueste Version dieses Skripts installiert auch die Manpages. Sie müssen Ihre Einstellungen anpassen MANPATH, um das /usr/local/git/share/manVerzeichnis einzuschließen .


5
Auf Fedora : yum install git. Für den GUI-Lauf yum install git-gui.
Cristian Ciupitu

2
Auf Mac,sudo port install git-core+bash_completion+doc
Singletoned

Ich habe fink für Mac heruntergeladen, aber das Ausführen von fink install git gibt mir den Fehler: "Fehlgeschlagen: Kein Paket für Spezifikation 'git' gefunden!"
Quano

@quano Es sollte da sein, pdb.finkproject.org/pdb/package.php/git - überprüfe , ob Fink richtig aktualisiert wurde - ich denke, Laufen fink self-updatesollte helfen
dbr

32

Git Reset

Angenommen, Sie ziehen, fügen es in Ihren Code ein und entscheiden, dass es Ihnen nicht gefällt. Verwenden Sie git-log oder tig und suchen Sie den Hash, zu dem Sie zurückkehren möchten (wahrscheinlich Ihr letztes Commit vor dem Pull / Merge). Kopieren Sie den Hash und führen Sie Folgendes aus:

# Revert to a previous commit by hash:
git-reset --hard <hash>

Anstelle des Hashs können Sie HEAD ^ als Verknüpfung für das vorherige Commit verwenden.

# Revert to previous commit:
git-reset --hard HEAD^

4
Dies ist das Analogon zu einem Revert in den meisten anderen zentralisierten Versionskontrollsystemen.
Jeremy Wall

"$ git-reset --hard HEAD ^" sollte eine Abkürzung für das Elternteil des Kopfes sein (dh den vorherigen Status vor dem letzten Festschreiben).
Ben Seite

6
Nur ein einfacher Alter git resetsollte versehentlich die Bühne verlassengit add
slf

31

Wie richten Sie ein freigegebenes Team-Repository ein?

Hier wird beschrieben , wie Sie ein normales Repository einrichten. Wie können Sie jedoch ein Team-Repository einrichten, das jeder von und nach ziehen und verschieben kann?

Verwenden eines gemeinsam genutzten NFS-Dateisystems

Angenommen, Ihr Team verfügt beispielsweise bereits über eine gemeinsame Gruppenmitgliedschaft, die verwendet werden kann.

mkdir /your/share/folder/project.git
cd /your/share/folder/project.git
newgrp yourteamgroup # if necessary
git init --bare --shared

Um dieses Repository zu verwenden, starten Sie am einfachsten von einem lokalen Repository, das Sie bereits verwendet haben:

cd your/local/workspace/project
git remote add origin /your/share/folder/project.git
git push origin master

Andere können dies jetzt klonen und anfangen zu arbeiten:

cd your/local/workspace
git clone /your/share/folder/project.git

Verwenden von SSH

Richten Sie ein Benutzerkonto auf dem Zielserver ein. Ob Sie ein Konto ohne Kennwort, ein Konto mit Kennwort oder eine Verwendung verwenden, authorized_keyshängt wirklich von Ihrer erforderlichen Sicherheitsstufe ab. Weitere Informationen finden Sie unter Konfigurieren von Git über SSH .

Wenn alle Entwickler dasselbe Konto für den Zugriff auf dieses freigegebene Repository verwenden, müssen Sie die --sharedoben beschriebene Option nicht verwenden .

Nachdem Sie das Repository auf die gleiche Weise wie oben gestartet haben, führen Sie den ersten Push wie folgt aus:

cd your/local/workspace/project
git remote add origin user@server:/path/to/project.git
git push origin master

Sehen Sie die Ähnlichkeit mit dem oben genannten? Das einzige, was zusätzlich passieren kann, ist, dass SSH nach einem Passwort fragt, wenn das Konto ein Passwort hat. Wenn Sie diese Eingabeaufforderung für ein Konto ohne Kennwort erhalten, wurde der SSH-Server wahrscheinlich deaktiviert PermitEmptyPasswords.

Das Klonen sieht jetzt so aus:

cd your/local/workspace
git clone user@server:/path/to/project.git

neben NFS - wie richten Sie den Git-Server so ein, dass er über ssh funktioniert? - Wie eine winzige Instanz von github.com?
Dafydd Rees

Ist es notwendig, ein Gruppen-Sticky-Bit in den entsprechenden Verzeichnissen zu setzen, oder kümmert sich git um all das? Wenn letzteres der Fall ist, woher weiß Git, welche Gruppe für die Berechtigungen für die Unix-Dateien verwendet werden soll?
Norman Ramsey

Ich habe wie gewünscht einen Abschnitt über SSH hinzugefügt. Das Sticky-Bit wird benötigt, wenn nicht alle Entwickler die gemeinsam genutzte Gruppe als primäre Gruppe haben. Wenn einer der Benutzer eine andere primäre Gruppe hat, erstellt er standardmäßig Dateien mit diesem Gruppenbesitz. Dies geschieht unterhalb von Git und liegt daher nicht immer unter der Kontrolle von Git.
Asgeir S. Nilsen

Für welche git repo-config core.sharedRepository Gruppe ist das nützlich?
Systempuntoout

28

git statusist dein Freund, benutze es oft. Gut für die Beantwortung von Fragen wie:

  • Was hat dieser Befehl gerade getan?
  • Auf welchem ​​Zweig bin ich?
  • Welche Änderungen werde ich vornehmen und habe ich etwas vergessen?
  • War ich mitten in etwas, als ich das letzte Mal an diesem Projekt gearbeitet habe (Tage, Wochen oder vielleicht Monate zuvor)?

Im Gegensatz zu , sagen wir svn status, git statusläuft der fast sofort auch bei großen Projekten. Ich fand es oft beruhigend, als ich lernte, Git häufig zu benutzen, um sicherzustellen, dass mein mentales Modell von dem, was vor sich ging, korrekt war. Jetzt benutze ich es meistens nur, um mich daran zu erinnern, was ich seit meinem letzten Commit geändert habe.

Offensichtlich ist es viel nützlicher, wenn Ihr .gitignore ordnungsgemäß konfiguriert ist.


27

Änderungen festschreiben

Sobald Sie eine Datei bearbeitet haben, müssen Sie Ihre Änderungen an git übergeben. Wenn Sie diesen Befehl ausführen, werden Sie nach einer Festschreibungsnachricht gefragt. Dies ist nur ein einfacher Text, der allen mitteilt, was Sie geändert haben.

$ git commit source/main.c

Übernimmt die Datei main.c im Verzeichnis ./source/

$ git commit -a # the -a flag pulls in all modified files

schreibt alle geänderten Dateien fest (aber keine neuen Dateien, diese müssen mit git-add zum Index hinzugefügt werden). Wenn Sie nur bestimmte Dateien festschreiben möchten, müssen Sie diese zuerst mit git-add und dann ohne das Flag -a festschreiben.

Durch das Festschreiben wird nur Ihr lokales Repository geändert, nicht jedoch die Remote-Repositorys. Wenn Sie die Commits an das Remote-Repository senden möchten, müssen Sie einen Push ausführen.

$ git push <remote> <branch> # push new commits to the <branch> on the <remote> repository

Für jemanden, der von CVS oder SVN kommt, ist dies eine Änderung, da das Festschreiben an das zentrale Repository jetzt zwei Schritte erfordert.


27

Wie verzweigen Sie?

Der Standardzweig in einem Git-Repository wird aufgerufen master.

Um einen neuen Zweig zu erstellen, verwenden Sie

git branch <branch-name>

Anzeigen einer Liste aller Zweige im aktuellen Repository-Typ

git branch

Wenn Sie zu einem anderen Zweig wechseln möchten, können Sie verwenden

git checkout <branch-name>

So erstellen Sie einen neuen Zweig und wechseln in einem Schritt zu diesem

git checkout -b <branch-name>

Verwenden Sie zum Löschen eines Zweigs

git branch -d <branch-name>

Führen Sie die folgenden Schritte aus, um einen Zweig mit den Änderungen des aktuellen Zweigs zu erstellen

git stash
git stash branch <branch-name>

11
Sie sollten die Verknüpfung git checkout -b <branch-name> erwähnen, die einen Zweig erstellt und in einem Schritt zu diesem wechselt. Dies ist wahrscheinlich der häufigste Anwendungsfall für Anfänger und sogar fortgeschrittene Git-Benutzer.
Jeremy Wall

21

Den neuesten Code erhalten

$ git pull <remote> <branch> # fetches the code and merges it into 
                             # your working directory
$ git fetch <remote> <branch> # fetches the code but does not merge
                              # it into your working directory

$ git pull --tag <remote> <branch> # same as above but fetch tags as well
$ git fetch --tag <remote> <branch> # you get the idea

Das deckt so ziemlich jeden Fall ab, in dem die neueste Kopie des Codes aus dem Remote-Repository abgerufen wird.



18

Git Magic ist alles, was Sie jemals brauchen werden. Garantiert oder Ihr Geld zurück!


14
Seufz, ich will mein Geld zurück. Buggy-Software (msysGit) mit einem unvollständigen Tutorial (GitMagic) == Stunden Arbeit, die kaum kostenlos ist
SamGoody

16

Wie verschmelzen Sie Zweige?

Wenn Sie einen Zweig zusammenführen möchten (z. B. masterbis release), stellen Sie sicher, dass Ihr aktueller Zweig der Zielzweig ist, in den Sie zusammenführen möchten (verwenden Sie Ihren aktuellen Zweig git branchoder git statussehen Sie ihn an).

Dann benutze

git merge master

(Wo masterist der Name des Zweigs, den Sie mit dem aktuellen Zweig zusammenführen möchten?)

Wenn es Konflikte gibt, können Sie verwenden

git diff

Um anstehende Konflikte zu sehen, müssen Sie sie lösen.


2
Es gibt Git Mergetool, das einen Drei-Wege-Diff mit Ihrem Lieblingswerkzeug (gvimdiff, kdiff3 oder mehr) macht
Dave Vogt



12

So verfolgen Sie entfernte Zweige

Angenommen, es gibt ein Remote-Repository, aus dem Sie Ihr lokales Repository geklont haben, und unter der Annahme, dass sich in diesem Remote-Repository ein Zweig mit dem Namen "some_branch" befindet, können Sie dies lokal verfolgen:

# list remote branches
git branch -r

# start tracking one remote branch
git branch --track some_branch origin/some_branch

# change to the branch locally
git checkout some_branch

# make changes and commit them locally
....

# push your changes to the remote repository:
git push

Es scheint, dass in Git 1.7 Remote-Zweige automatisch verfolgt werden, wenn Sie einen lokalen Zweig daraus erstellen. Ich weiß nicht, in welcher Version dieses Verhalten begonnen hat.
Doppelgänger

Tatsächlich können Sie alle entfernten Zweige git remote show REMOTENAME
Felipe Sabino


10

Wie vergleichen Sie zwei Revisionen einer Datei oder Ihre aktuelle Datei und eine vorherige Revision?

Vergleichsbefehl ist git diff .

So vergleichen Sie 2 Revisionen einer Datei:

$ git diff <commit1> <commit2> <file_name>

Das unterscheidet commit1 von commit2; Wenn Sie die Reihenfolge ändern, werden die Dateien umgekehrt angezeigt, was möglicherweise nicht Ihren Erwartungen entspricht ...

So vergleichen Sie die aktuell bereitgestellte Datei mit dem Repository:

$ git diff --staged <file_name>

So vergleichen Sie die aktuelle nicht bereitgestellte Datei mit dem Repository:

$ git diff <file_name>

9

Warum noch ein Howto? Es gibt wirklich gute im Netz, wie die Git-Anleitung, die perfekt ist, um zu beginnen. Es hat gute Links einschließlich des Git-Buches zu dem man beitragen kann (gehostet auf Git-Hub) und das perfekt für diese kollektive Aufgabe ist.

Beim Stackoverflow würde ich es wirklich vorziehen, deine Lieblingstricks zu sehen!

Meins, das ich erst kürzlich entdeckt habe, ist git stash hier erklärt , damit Sie Ihren aktuellen Job speichern und zu einer anderen Niederlassung wechseln können

BEARBEITEN: Wie im vorherigen Beitrag werde ich diese Antwort löschen, wenn Sie das Stackoverlow-Format mit Beiträgen als Wiki wirklich bevorzugen


Nein, nicht löschen. Ihre Antwort ist absolut gültig - und es ist keine schlechte Sache, andere auf gute Ressourcen hinzuweisen. Ich möchte auch die hier aufgeführten häufigsten Operationen, aber es ist ein bisschen Arbeit und ich erwarte nicht, dass andere es tun. Ich werde es im Laufe der Zeit tun, wenn ich lerne, und dies wird eine Referenz für mich sein.
Adam Davis

9

Konsolen-Benutzeroberfläche - Tig

Installation:

apt-get install tig

Verwendungszweck

Geben Sie in einem Git-Repo 'tig' ein, um ein interaktives Protokoll anzuzeigen, und drücken Sie in einem Protokoll die Eingabetaste, um weitere Informationen dazu anzuzeigen. h für Hilfe, in der die Grundfunktionen aufgeführt sind.

Wissenswertes

"Tig" ist "Git" rückwärts.


Sollte es nicht eine "Konsolen-Benutzeroberfläche" sein, da "Konsole" und "Grafik" etwas widersprüchlich sind?
dbr

Es ist viel grafischer als Git-Log ... aber es ist viel interaktiver ...
Dean Rather

8

Wie kann ich einen Zweig in einem Remote-Repository erstellen?

Angenommen, Sie haben Ihr Remote-Repository von einem einzelnen Remote-Repository geklont.

# create a new branch locally
git branch name_of_branch
git checkout name_of_branch
# edit/add/remove files    
# ... 
# Commit your changes locally
git add fileName
git commit -m Message
# push changes and new branch to remote repository:
git push origin name_of_branch:name_of_branch

11
warum name_of_branch: name_of_branch?
Seun Osewa

Ja, warum? Soweit ich weiß, brauchen Sie nur git push origin name_of_branchund der Zweig wird bereits in Ihrer Fernbedienung erstellt
Felipe Sabino

Der erste name_of_branchist der lokale Name, der zweite ist der (gewünschte) Name des Remote-Zweigs. local_name_of_branch:remote_name_of_branchDies kann der Fall sein, wenn Sie möchten, dass sich die Namen unterscheiden. Wenn Sie möchten, dass sie gleich sind, müssen Sie sie immer noch so angeben, dass dieser b / c-Git ​​nicht davon ausgeht, dass der Name derselbe sein soll, es sei denn, Sie sagen es (es gibt auch andere Methoden, um dies zu tun). jedoch)
Johnny

8

Ich habe mit dem offiziellen Git-Tutorial begonnen . Ich denke, es ist praktisch genug für Anfänger (ich war und bin nach Ihrer Definition ein Anfänger! Ich verstehe kaum Makefiles, ich habe nur ein bisschen mit Apache Subversion gespielt usw.).


8

Wie lösche ich einen Zweig in einem Remote-Repository?

Führen Sie einen Push in Ihrer Fernbedienung :vor dem Namen des Zweigs durch

git push origin :mybranchname

Dies ist originder Name Ihrer Fernbedienung und mybranchnameder Name des Zweigs, der gelöscht werden soll

http://help.github.com/remotes/


7

Änderungen drücken und ziehen

Auf vereinfachte Weise einfach tun git pushundgit pull . Änderungen werden zusammengeführt und wenn es einen Konflikt gibt, werden Sie von git informiert und können ihn manuell lösen.

Wenn Sie zum ersten Mal in ein Remote-Repository pushen, müssen Sie einen git push origin master(Master ist der Master-Zweig) ausführen. Von da an machst du einfach dasgit push .

Tags mit schieben git push --tags.


7

Code auschecken

Gehen Sie zuerst in ein leeres Verzeichnis, verwenden Sie "git init", um es zu einem Repository zu machen, und klonen Sie dann das Remote-Repo in Ihr eigenes.

git clone user@host.com:/dir/to/repo

Wo immer Sie anfänglich klonen, wird standardmäßig "git pull" abgerufen.


7
Ich denke, Klon führt den Init-Schritt für Sie aus, sodass Sie Init nicht zuerst ausführen müssen. git init dient hauptsächlich zum Erstellen des ersten Repositorys oder für spezielle Konfigurationen mit mehreren Fernbedienungen, die Sie anders als bei einem Standardklon einrichten möchten.
Jeremy Wall

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.