Frage Git für Anfänger: Der definitive praktische Leitfaden


Ok, nach dem Sehen Dieser Beitrag von PJ HyettIch habe beschlossen, bis zum Ende zu springen und mitzugehen Git.

Also was ich brauche, ist ein Anfänger praktisch Anleitung zu Git. "Anfänger" wird definiert als jemand, der weiß, wie er mit seinem Compiler umgehen soll, versteht bis zu einem gewissen Grad, was Makefile ist, und hat Source Control berührt, ohne es sehr gut zu verstehen.

"Praktisch" wird definiert, da diese Person nicht im Detail darüber informiert werden möchte, was Git im Hintergrund macht und sich nicht einmal darum kümmert (oder weiß), dass es verteilt ist. Ihre Antworten könnten Hinweise auf die Möglichkeiten geben, aber versuchen Sie, auf den Anfänger zu zielen, der ein "Haupt" -Repository auf einem "Server" behalten möchte, der gesichert und gesichert ist, und sein lokales Repository als reine "Client" -Ressource behandelt.

Damit:

Installation / Einrichtung

Mit dem Code arbeiten

Tagging, Verzweigungen, Releases, Baselines

Andere

  • Beschreibe und verbinde dich mit einer guten GUI, einem IDE-Plugin, etc., was Git zu einer Nicht-Befehlszeilen-Ressource macht, aber lies bitte seine Beschränkungen sowie seine Vorteile auf.
    • msysgit - Cross-Plattform, in Git enthalten
    • Scheiße - Plattformübergreifender Verlaufsbetrachter, der in Git enthalten ist
    • GitNub - Mac OS X
    • Gitx - Mac OS X-Verlaufsanzeige
    • Smartgit - Plattformübergreifend, kommerziell, Beta
    • tig- Konsole GUI für Linux
    • qgit - GUI für Windows, Linux
    • Git Erweiterungen - Paket für Windows, enthält freundliche GUI
  • Irgendwelche anderen allgemeinen Aufgaben, die ein Anfänger wissen sollte?
  • Wie kann ich effektiv mit einem Subversion-Repository arbeiten, das als Quelle für die Quellcodeverwaltung festgelegt wurde?

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 konsistentes Aussehen / Gefühl haben und es ist einfach, die Liste zu scannen - fühlen Sie sich frei, einem einfachen "Header - kurze Erklärung - Liste von Anweisungen - gotchas und Extra Info "Vorlage. Ich werde auch auf die Einträge in der oben stehenden Aufzählungsliste verweisen, damit Sie sie später leichter finden können.


854
2017-11-26 09:26


Ursprung


Antworten:


Wie erstellst du ein neues Projekt / Repository?

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

Dies unterscheidet sich von "zentralisierten" Versionskontrollsystemen (wie Subversion), bei denen ein "Repository" auf einem entfernten Server gehostet wird, den Sie checkout in ein "Arbeitskopie" -Verzeichnis. Mit git, deiner Arbeitskopie ist das Repository.

Einfach laufen git init in dem Verzeichnis, das die Dateien enthält, die Sie verfolgen möchten.

Beispielsweise,

cd ~/code/project001/
git init

Dies schafft ein .git (versteckter) Ordner im aktuellen Verzeichnis.

Um ein neues Projekt zu erstellen, führen Sie es aus git init mit einem zusätzlichen Argument (der Name 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, starten Sie einfach git status - Wenn es kein Repository ist, meldet es "fatal: Kein git-Repository"

Sie könnten auch die Liste auflisten .git Verzeichnis und überprüfen Sie, dass es Dateien / Verzeichnisse ähnlich der folgenden enthält:

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

Wenn Sie aus irgendeinem Grund ein Repository "de-git" wollen (Sie wollen aufhören, git zu verwenden, um das Projekt zu verfolgen). Einfach die entfernen .git Verzeichnis auf der Basisebene des Repositorys.

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

Vorsicht: Dies wird zerstören alle Überarbeitungsgeschichte, alle deine Tags, alles Git hat getan. Es wird nicht die "aktuellen" Dateien (die Dateien, die Sie gerade sehen können) berühren, aber vorherige Änderungen, gelöschte Dateien und so weiter sind nicht wiederherstellbar!


118
2017-11-25 00:49



GUIs für Git


Git-GUI

Mit git - Run enthalten git gui von der Befehlszeile und Windows msysgit Das Installationsprogramm fügt es dem Startmenü hinzu.

Git GUI kann einen Großteil dessen tun, was Sie mit Git tun müssen. Einschließlich Stage Changes, Konfiguration von Git und Repositories, Push-Änderungen, Erstellen / Auschecken / Löschen von Zweigen, Zusammenführen und viele andere Dinge.

Eine meiner Lieblingsfunktionen ist die "stage line" - und "stage hunk" -Kurzbefehle im Rechtsklick-Menü, mit der Sie bestimmte Teile einer Datei festschreiben können. Sie können dasselbe über erreichen git add -i, aber ich finde es einfacher zu benutzen.

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 History Viewer, mit dem Sie den Verlauf eines Repositories visualisieren können (einschließlich Zweige, wenn sie erstellt und zusammengeführt werden). Sie können Commits anzeigen und suchen.

Geht gut mit Git-Gui zusammen.


Gitnub

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

Sieht gut aus und passt zu Mac OS X. Sie können Repositories durchsuchen. Die größte Kritik von Gitnub ist, dass es Geschichte in einer linearen Art und Weise zeigt (ein einziger Zweig zu einer Zeit) - es visualisiert keine Verzweigung und Verschmelzung, was bei Git wichtig sein kann, obwohl dies eine geplante Verbesserung ist.

Download Links, Änderungsprotokoll und Screenshots | Git-Repository


GitX

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

Es kann nicht-lineare Verzweigungshistorie visualisieren, Commits ausführen, Commits anzeigen und suchen und es hat einige andere nette Eigenschaften wie "jede Datei in jeder Revision" schnell zu "schauen" (Speicherplatz in der Dateilistenansicht drücken), jede Datei exportieren (per Drag & Drop).

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

Das ursprüngliche Git-Repository pieter wurde vor kurzem nicht aktualisiert (über ein Jahr zum Zeitpunkt des Schreibens). Eine aktivere Filiale ist verfügbar unter Bruder / Gitx - es fügt "sidebar, fetch, pull, push, remote hinzufügen, fusionieren, cherry-pick, rebase, clone, clone to"

Herunterladen | Screenshots | Git-Repository | Brudergabel | Laulón-Gabel


SmartGit

Von der Homepage:

SmartGit ist ein Front-End für die   verteiltes Versionskontrollsystem Git   und läuft unter Windows, Mac OS X und   Linux. SmartGit ist vorgesehen für   Entwickler, die einen grafischen Benutzer bevorzugen   Schnittstelle über einen Befehlszeilenclient,   mit Git noch produktiver zu sein -   der stärkste DVCS heute.

Sie können es herunterladen von ihre Website.

Herunterladen


SchildkrötenGit

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 wie commit, show log, diff zwei Version, create branch und tag, Create patch und so weiter abschließen. Sehen Versionshinweise für Details. Willkommen, um dieses Projekt beizutragen.

Herunterladen


QGit

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

Mit qgit können Sie blättern   Revisionsverlauf, Patch-Inhalt anzeigen   und geänderte Dateien, grafisch   folgende unterschiedliche Entwicklung   Geäst.

Herunterladen


gitg

gitg ist ein Git-Repository-Viewer   Ausrichtung auf GTK + / GNOME. Einer seiner wichtigsten   Ziel ist es, mehr zu bieten   Unified User Experience für Git   Frontends über mehrere Desktops hinweg. Es   schreibt das nicht ein   plattformübergreifende Anwendung, sondern durch   enge Zusammenarbeit mit ähnlichen   Clients für andere Betriebssysteme   (wie GitX für OS X).

Eigenschaften

  • Durchsuchen des Überarbeitungsverlaufs
  • Handle große Repositories (lädt Linux-Repository, 17000+ Revisionen, unter 1 Sekunde).
  • Änderungen übernehmen
  • Stage / Unstagierung einzelner Stücke.
  • Änderungen rückgängig machen.
  • Zeige farblich geänderte Änderungen in Revisionen an.
  • Durchsuchen Sie den Baum nach einer bestimmten Revision.
  • Exportiert Teile des Baums einer bestimmten Revision.
  • Liefern Sie alle refspec, die ein Befehl wie 'git log' verstehen kann, um die Geschichte zu erstellen.
  • Zeigen und wechseln Sie zwischen Zweigen in der History-Ansicht.

Herunterladen: Releases oder Quelle


Gitbox

Gitbox ist ein Mac OS X Grafik   Schnittstelle für Git Versionskontrolle   System. In einem einzigen Fenster sehen Sie   Zweige, Geschichte und Arbeit   Verzeichnisstatus.

Alltägliche Operationen sind einfach: Bühne   und unstagiert Änderungen mit einem Kontrollkästchen.   Commit, Pull, Merge und Push mit einem   ein einziger Klick. Doppelklicken Sie auf eine Änderung in   zeige ein diff mit FileMerge.app.

Herunterladen


Gott

Die Gity-Website hat nicht viele Informationen, aber von den Screenshots dort scheint es eine funktionsreiche Open Source OS X git gui zu sein.

Herunterladen oder Quelle


Meld

Meld ist ein visuelles Diff- und Merge-Tool.   Sie können zwei oder drei Dateien vergleichen und   editiere sie an Ort und Stelle (diffs update   dynamisch). Sie können zwei oder vergleichen   drei Ordner und Startdatei   Vergleiche. Sie können suchen und anzeigen   Arbeitskopie von der populären Version   Kontrollsysteme wie CVS,   Subversion, Bazaar-ng und Mercurial   [und Git].

Downloads


Katana

Eine Git GUIfor OSX von Steve Dekorte.

Auf einen Blick sehen Sie, welche entfernten Zweige   haben Änderungen zu ziehen und lokale Repos   habe Änderungen zu pushen. Die Git Ops von   hinzufügen, commit, push, pull, tag und reset   werden ebenso unterstützt wie visuelle Diffs   und visuelles Browsen von Projekthierarchie   Das hebt lokale Änderungen und Ergänzungen hervor.

Kostenlos für 1 Repository, 25 $ für mehr.

Herunterladen


Sprout (früher GitMac)

Konzentriert sich darauf, Git benutzerfreundlich zu machen. Verfügt über eine native Cocoa (Mac-ähnliche) Benutzeroberfläche, schnelles Repository-Browsing, Klonen, Push / Pull, Verzweigen / Zusammenführen, visuelles Vergleichen, Remote-Verzweigungen, einfachen Zugriff auf das Terminal und mehr.

Indem die gängigsten Git-Aktionen intuitiv und einfach durchzuführen sind, macht Sprout (früher GitMac) Git benutzerfreundlich. Kompatibel mit den meisten Git-Workflows eignet sich Sprout hervorragend für Designer und Entwickler, Team-Collaboration sowie fortgeschrittene und unerfahrene Benutzer gleichermaßen.

Herunterladen | Webseite


Turm

Eine funktionsreiche Git GUI für Mac OSX. 30-tägige kostenlose Testversion, $ 59USD für eine Einzelplatzlizenz.

Herunterladen | Webseite


EGit

EGit ist ein Eclipse-Team-Provider für das Versionskontrollsystem Git.   Git ist ein verteilter SCM, was bedeutet, dass jeder Entwickler eine vollständige Kopie hat   aller Geschichte jeder Revision des Codes, die Anfragen gegen   die Geschichte sehr schnell und vielseitig.

Das EGit-Projekt implementiert Eclipse-Tools auf dem JGit   Java-Implementierung von Git.

Herunterladen | Webseite


Git Erweiterungen

Open Source für Windows - installiert alles, was Sie brauchen, um mit Git zu arbeiten, in einem einzigen Paket, einfach zu bedienen.

Git Extensions ist ein Toolkit, um die Arbeit mit Git unter Windows intuitiver zu gestalten. 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, um git von Visual Studio zu verwenden.

Herunterladen

Vielen Dank an dbr für die Ausarbeitung auf dem git gui Zeug.


SourceTree

SourceTree ist ein frei Mac-Client für Git, Mercurial und SVN. Er wurde von Atlassian, den Leuten hinter BitBucket, entwickelt und scheint mit jedem VC-System zu funktionieren, das es Ihnen ermöglicht, ein einziges Tool für alle Ihre Projekte zu beherrschen, jedoch versionsgesteuert. Feature-verpackt und KOSTENLOS.

Expert-Ready & Feature-verpackt für Anfänger und Fortgeschrittene:

Überprüfen Sie ausgehende und eingehende Änderungsmengen.   Kirschbaum zwischen Zweigen.   Patch-Handling, Rebase, Stash / Shelve und vieles mehr.

Herunterladen | Webseite 



110
2017-11-25 01:04



Nun, trotz der Tatsache, dass Sie gefragt 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: die Git Community Buch. Im Ernst, diese 20+ Fragen in einer Frage werden alles andere als knapp und konsistent sein. Das Git Community Book ist sowohl als HTML als auch als PDF erhältlich und beantwortet viele Ihrer Fragen mit klaren, gut formatierten und von Experten überprüften Antworten und in einem Format, das es Ihnen ermöglicht, direkt zu Ihrem Problem zu springen.

Leider, wenn mein Beitrag dich wirklich aufregt, dann werde ich es löschen. Sag es einfach.


59
2017-11-27 04:58



Wie man es konfiguriert, um Dateien zu ignorieren:

Die Möglichkeit, dass Git Dateien ignoriert, die nicht verfolgt werden sollen, ist sehr nützlich.

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

  • Eine leere Zeile ignoriert keine Dateien, sie wird normalerweise als Trennzeichen verwendet.
  • Linien, die mit starren # dienen als Kommentare.
  • Das ! Präfix ist optional und negiert das Muster. Jedes negierte Muster, das übereinstimmt, überschreibt niedrigere Präzedenzmuster.
  • Unterstützt erweiterte Ausdrücke und Platzhalter
    • Bsp .: Das Muster: *. [oa]  ignoriert alle Dateien im Repository, die auf .o oder .a (Objekt- und Archivdateien) enden
  • Wenn ein Muster ein Verzeichnis hat, das mit einem Schrägstrich endet, passt git nur auf dieses Verzeichnis und Pfade darunter. Dies schließt normale Dateien und symbolische Links aus dem Spiel aus.
  • Ein führender Schrägstrich entspricht allen Dateien in diesem Pfadnamen.
    • Bsp .: Das Muster /*.c passt die Datei an foo.c aber nicht bar / ehrfürchtig.c

Großes Beispiel aus der Gitignore (5) man seite:

$ 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) Ignoriere für alle Benutzer des Repositories:

Fügen Sie eine Datei mit dem Namen hinzu .gitignore an die Wurzel Ihrer Arbeitskopie.

Bearbeiten .gitignore um Ihre Präferenzen für welche Dateien sollten / sollten nicht ignoriert werden.

git add .gitignore 

und begehe, wenn du fertig bist.

2) Ignoriere nur für deine Kopie des Repositories:

Hinzufügen / Bearbeiten der Datei $ GIT_DIR / info / ausschließen in Ihrer Arbeitskopie mit Ihren bevorzugten Mustern.

Bsp: Meine Arbeitskopie ist ~ / src / project1, also würde ich bearbeiten ~ / src / project1 / .git / info / ausschließen

Sie sind fertig!

3) Ignoriere in allen Situationen auf deinem System: 

Globale Ignoriermuster für Ihr System können in eine Datei mit dem Namen "was immer Sie wollen" aufgenommen werden.

Meins wird persönlich genannt ~ / .gitglobalignore 

Ich kann dann git von dieser Datei wissen lassen, indem ich meine ~ / .gitconfig Datei mit folgender Zeile:

core.excludesfile = ~/.gitglobalignore

Sie sind fertig!

Ich finde das Gitignore man-Seite, um die beste Ressource für weitere Informationen zu sein.


56
2017-11-27 13:25



Wie "taggen" Sie bestimmte Revisionen?

Wie markierst du einen bestimmten Satz von Revisionen für einen bestimmten Satz von Dateien als "tag" oder "release", so dass du diesen später immer noch ziehen kannst?

Verwendung der git tag Befehl.

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

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, einfach ausführen git tag ohne Argumente, 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 -d Flagge:

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

Um ein bestimmtes (früheres) Commit zu markieren, tun Sie einfach ..

git tag [tag name] [revision SHA1 hash]

Beispielsweise:

git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b

Hinweis: Standardmäßig erstellt Git ein "leichtgewichtiges" -Tag (im Grunde eine Referenz auf eine bestimmte Revision). Der "richtige" Weg ist die Verwendung der -a Flagge. Dies wird Ihren Editor starten und nach einer Tag - Nachricht fragen (identisch mit der Frage nach einer Commit - Nachricht, Sie können auch die -m Flag, um die Tag-Nachricht in der Befehlszeile zu übergeben). Wenn Sie ein annotiertes Tag verwenden, wird ein Objekt mit einer eigenen ID, einem eigenen Datum, einem eigenen Tagger (Autor) und optional einer GPG - Signatur erstellt (mithilfe des -s Etikett). Weitere Informationen hierzu finden Sie unter dieser Beitrag

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

Um die Tags mit Anmerkungen aufzulisten, verwenden Sie die -n1 Flag, um eine Zeile jeder Tag-Nachricht anzuzeigen (-n245 um die ersten 245 Zeilen jeder Annotation anzuzeigen, und so weiter):

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

Weitere Informationen finden Sie unter git-tag (1) Handbuchseite


47
2017-11-27 14:25



Workflow-Beispiel mit GIT.

Git ist extrem flexibel und passt sich gut an jeden Workflow an, aber das Erzwingen eines bestimmten Workflows kann den negativen Effekt haben, dass es nicht nachvollziehbar ist, was man mit git jenseits des linearen "Backup" -Workflows machen kann und wie nützlich Branching sein kann .

Dies Blogeintrag erklärt schön einen sehr einfachen, aber effektiven Workflow, der mit git einfach einzurichten ist.

Zitat aus dem Blogpost: Wir betrachten Ursprung / Master als den Hauptzweig, in dem der Quellcode von HEAD immer einen produktionsbereiten Zustand widerspiegelt:

Der Workflow wurde populär genug, um ein Projekt zu erstellen, das diesen Workflow implementiert: Git-Fluss 

Schöne Illustration eines einfachen Workflows, in dem Sie all Ihre Änderungen in Entwicklung vornehmen und nur dann zum Master-Modus wechseln, wenn sich der Code in einem Produktionszustand befindet:

simple workflow

Angenommen, Sie möchten an einem neuen Feature arbeiten oder ein Modul refaktorieren. Sie könnten einen neuen Zweig erstellen, den wir einen "Feature" -Abzweig nennen könnten, etwas, das einige Zeit in Anspruch nimmt und möglicherweise Code sprengt. Sobald Ihr Feature "stabil genug" ist und Sie es der Produktion "näher bringen" möchten, fügen Sie Ihren Feature-Zweig in develop ein. Wenn alle Fehler nach der Zusammenführung aussortiert wurden und Ihr Code alle Tests bestanden hat, schieben Sie Ihre Änderungen in den Master.

Während dieses ganzen Prozesses finden Sie einen schrecklichen Sicherheitsfehler, der sofort behoben werden muss. Sie könnten eine Verzweigung namens Hotfixes haben, die Änderungen, die schneller zurück in die Produktion als der normale "entwickeln" Zweig geschoben werden.

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

Git workflow example


46
2017-11-26 01:20



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

Git ist nicht schwer

23. November 2008

Wenn wir den Menschen sagen, warum sie sollten   Verwenden Sie Git über Subversion, der Einstiegspunkt   Zeile ist: "Git tut Subversion besser   als Subversion, aber es tut viel   mehr als das."

Das "viel mehr" besteht aus einem Haufen   von Dingen, die Git wirklich glänzen lassen,   aber es kann ziemlich überwältigend sein für   die kommen von anderen SCMs wie   Subversion.

Das heißt, es gibt nichts zu stoppen   Sie verwenden Git genauso, wie Sie es benutzen   Subversion, während du das machst   Übergang.

Vorausgesetzt, Sie haben das installiert   notwendige Software und haben eine Fernbedienung   Repository irgendwo, das ist wie du   würde den Code greifen und deinen drücken   ändert sich mit Subversion zurück:

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

Und wie würdest du es in Git machen:

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

Noch ein Befehl, um das zu ermöglichen   Git. Dieser zusätzliche Befehl ist groß   Implikationen, aber für die Zwecke von   diesen Beitrag, das ist alles, was wir reden   ungefähr, ein zusätzlicher Befehl.

Siehst du, es ist wirklich nicht so schwer.

Aktualisieren: Ich wäre nachlässig, nicht auch das Äquivalent zu erwähnen   Aktualisierung Ihrer lokalen Kopie in Subversion   im Vergleich zu Git ist svn update und    git pull, beziehungsweise. Einziger   Befehl in beiden Fällen.


39
2018-05-03 08:56



Wie installiere ich Git?

Unter Windows:

Installieren msysgit

Es gibt mehrere Downloads:

  • Git: Verwenden Sie diese Option, sofern Sie nicht speziell eine der folgenden Optionen benötigen.
  • TragbaresGit: Verwenden Sie dies, wenn Sie Git auf einem PC ohne Installation auf diesem PC ausführen möchten (z. B. Git von einem USB-Laufwerk aus starten)
  • msysGit: Verwenden Sie dies, wenn Sie Git selbst entwickeln möchten. Wenn Sie nur Git für verwenden möchten Ihre Quellcode, möchte aber nicht bearbeiten Git's Quellcode, Sie brauchen das nicht.

Dies installiert auch eine Cygwin Bash Shell, so dass Sie die git in einer schöneren Schale (als cmd.exe) und schließt auch git-gui mit ein (zugänglich über git guiBefehl oder die Start > All Programs > Git Speisekarte)

Mac OS X

Benutze die Git-Osx-Installeroder Sie können auch von der Quelle installieren

Über einen Paketmanager

Installieren git Verwenden Sie Ihren nativen Paketmanager. Zum Beispiel auf 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 befindet sich das Git-Paket unter dem Abschnitt "devel"

Von der Quelle (Mac OS X / Linux / BSD / usw.)

Wenn Sie in Mac OS X Developer Tools installiert haben, können Sie Git sehr einfach aus der Quelle kompilieren. Laden Sie die neueste Version von Git als Download herunter .tar.bz oder .tar.gz von http://git-scm.com/, und extrahiere es (Doppelklick im Finder)

Unter Linux / BSD / etc. Es sollte ähnlich sein. Zum Beispiel müssen Sie in Debian (und Ubuntu) das installieren build-essential Paket über apt.

Dann in einem Terminal, cd wo Sie die Dateien extrahiert haben (Running cd ~/Downloads/git*/ sollte funktionieren), und dann laufen ..

./configure && make && sudo make install

Dies wird Git in den Standard-Ort installieren (/usr/local - damit git wird sein /usr/local/bin/git)

Sie werden aufgefordert, Ihr Passwort einzugeben (für sudo), so kann es schreiben /usr/local/ Verzeichnis, auf das nur der Benutzer "root" zugreifen kann, damit sudo benötigt wird!

Wenn Sie es irgendwo anders installieren (also Git Dateien sind nicht mit anderen Tools gemischt), verwenden Sie --prefix mit dem Befehl configure:

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

Dies wird die installieren git binär in /usr/local/bin/gitpath/bin/git - Sie müssen also nicht jedes Mal eingeben, wenn Sie etwas hinzufügen $PATH indem du die folgende Zeile in deine hinzufügst ~/.profile:

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

Wenn Sie keinen sudo-Zugriff haben, können Sie verwenden --prefix=/Users/myusername/bin und installieren Sie es in Ihrem Home-Verzeichnis. Denken Sie daran, hinzuzufügen ~/bin/ zu $PATH

Das Skript x-git-update-zur neuesten Version automatisiert viel davon:

Dieses Skript aktualisiert meinen lokalen Klon des Git Repos (lokal bei ~/work/track/git), und dann konfiguriert, installiert (at /usr/local/git-git describe) und aktualisiert die /usr/local/git Symlink.

So kann ich haben /usr/local/git/bin in meinem PATH und ich benutze immer die neueste Version.

Die neueste Version dieses Skripts installiert auch die man-Seiten. Sie müssen Ihre optimieren MANPATH das einschließen /usr/local/git/share/man Verzeichnis.


33
2017-08-29 01:33



Git zurücksetzen

Nehmen wir an, Sie machen einen Pull, fügen ihn in Ihren Code ein und entscheiden, dass Sie ihn nicht mögen. Verwenden Sie git-log oder tig und suchen Sie den Hash-Wert, an den Sie zurückkehren möchten (wahrscheinlich Ihr letzter Commit vor dem Ziehen / Zusammenführen), kopieren Sie den Hash und tun Sie Folgendes:

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

Anstelle des Hash können Sie verwenden HEAD ^ als eine Abkürzung für das vorherige Commit.

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

32
2017-11-25 01:02



Wie richten Sie ein gemeinsames Team-Repository ein?

Wie richte ich ein? normal Repository wird beschrieben Hier - Aber wie richtest du ein Team-Repository ein, an dem jeder ziehen und schieben kann?

Verwenden eines freigegebenen NFS-Dateisystems

Angenommen, Ihr Team verfügt bereits über eine freigegebene 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 aus, 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 Passwort, ein Konto mit einem Passwort verwenden oder verwenden authorized_keys hängt wirklich von Ihrem erforderlichen Sicherheitsniveau ab. Sieh dir das an Konfigurieren von Git über SSH für weitere Informationen.

Wenn alle Entwickler dasselbe Konto für den Zugriff auf dieses gemeinsam genutzte Repository verwenden, müssen Sie das nicht verwenden --shared Option wie oben.

Nachdem Sie das Repository auf die gleiche Weise wie oben begonnen 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 SSH fragt nach einem Passwort, wenn das Konto ein Passwort hat. Wenn Sie diese Eingabeaufforderung für ein Konto ohne Kennwort erhalten, ist der SSH-Server wahrscheinlich deaktiviert PermitEmptyPasswords.

Klonen sieht jetzt so aus:

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

31
2018-05-03 09:08