Frage

Dies ist im Zusammenhang mit einer anderen Frage, die ich vor kurzem gefragt .

Wenn msysgit Installation stellt das Installationsprogramm 3 Optionen auf Systempfad bezogen werden:

  1. Nie Windows-Umgebung ändern. Mit dieser Option haben Sie die "bash" Shell verwenden, um mit git zu arbeiten.

  2. Fügen Sie den git \ bin auf die Umgebungsvariable PATH, aber ohne einige eingebaute Windows-Tools überschreiben. Fellow-ian Stackoverflow Gabe Moothart sagte mir in einem Kommentar , dass diese Option machen einige git Operationen fehlschlagen! Was sind diese Vorgänge? Muss ich mir Sorgen über sie?

  3. Wie 2, aber einige Standardsystemtools außer Kraft setzen. Was sind diese Werkzeuge? Welche Teile von Fenstern hängen von ihnen? und wird die weh in der Praxis aus?

Ein weiteres Problem hat sich meiner Meinung nach in keinem Zusammenhang mit dem Systempfad.

Was passiert, wenn ich symbolische Links und Hard-Links in meinem Projektverzeichnis haben? Hat git wissen, wie man mit diesen umgehen? oder wird es aus unendlicher Rekursion leiden, wenn beispielsweise die Verzeichnisstruktur ist so, dass einige Ordner waren eigentlich ein symbolischer Link zu einem seiner Eltern?

War es hilfreich?

Lösung

Sie bash erhalten, unabhängig davon, welche Option Sie wählen, fügen die letzteren Optionen nur Methoden für die Verwendung von Git außerhalb.

Für die letztgenannten Optionen msysgit fügt Windows-Builds von gemeinsamem Linux-Dienstprogramme PATH . Dazu gehören find , kill und sort sowie cp , ls , rm , und etwa 20 bis 30 andere.

Das Problem bei dem ersten 3 (und ähnlichen) ist, dass sie sowohl in OSs und Funktion unterschiedlich in jedem existieren.

Keine große Tortur, wenn Sie wissen, was man Sie verwenden, aber alle Anwendungen entwickelt, erwartet eine und das andere bekommen wird sicherlich einen Anfall werfen.


Um den Konflikt zu verhindern, während noch Git Arbeit, wie erwartet, können Sie eine einfache Batch-Skript erstellen, das PATH nur für die Sitzung einstellt. (Z.B. readygit.bat)

@echo off
setlocal
set PATH=C:\Git\bin;%PATH%
cmd

Stellen Sie C:\Git\bin entsprechend. Aber gerade diese laufen und Git verwenden im cmd.

Mit diesem können Sie installieren verwenden Option 3 und sicher C:\Git\bin von Ihrem System PATH entfernen, um jegliche Verwirrung für Windows-Anwendungen ohne Git verwirrend.

Ich verwende derzeit ein ähnliches Skript mit GNUWin Apps, einschließlich < strong> find .

Andere Tipps

Sie können sich bewusst sein wollen, dass:

  • Alle git Befehle sind nicht immer noch da. Am MSysGit1.6.2 Anfang März 2009: archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, senden-E-Mail und Shell)

  • .
  • Bis MSysGit1.6.2, git-svn WAS nicht es ( es ist jetzt ).
    Das Problem war, git-svn subversion Perl-Bindungen benötigt, und man kann sich nur als dynamisch ladbare Module bauen. Und msysGit hatte eine Perl-Version, die nicht dynamisch ladbare Module unterstützt hat.

  • Alle Details zu msysGit werden am besten erklärt in ihrer MSysGitHerald Github Wiki

Ein Fenster (das ist weniger ein Problem auf anderen Systemen, in meiner sehr bescheidenen Meinung nach ...), müssen Sie sehr von crlf Problemen bewusst sein, und beachten Sie, dass (sofern sie dies in der neuesten Version geändert haben von Git, die ich glaube, sie haben können - oder, wenn Sie eine sehr alte Version von Git) verwenden, wird autocrlf standardmäßig aktiviert, im Gegensatz zu allen anderen git Installationen

.

Beachten Sie auch, dass, wenn Sie die neueste Version von msysgit verwenden, bald aus dieser Woche, wenn ich mich richtig aus der Mailingliste erinnern, Ihre Repository Größe kann nicht größer sein als 2 GB, insgesamt.

Darüber hinaus ist Windows-wierdly Groß- und Kleinschreibung, aber / manchmal / Fall zu bewahren - das im Auge behalten! (Dies gilt nicht verwirren git neccessarily - aber es kann und den Benutzer des git Repo jedoch verwechseln).

Schließlich git ist wesentlich langsamer auf Windows, als es auf Linux, obwohl es (in meiner begrenzten Erfahrung) schneller als die Alternativen ist.

Nun, in Bezug auf den Weg ...

Wenn ich nicht irre, sollten Sie in der Lage sein, nur um sicherzustellen, dass die Haupt-Git-binär in dem Weg - und die binär sollte dann darauf achten, die anderen git Komponenten der Referenzierung ... Aber ich habe nicht getestet <. / p>

Das MSYS Git Installationsprogramm schlägt Option 2, wenn Sie auf Lauf git aus einer Cygwin Prompt beabsichtigen. Die Cygwin-Umgebung sorgt dafür, dass git Abhängigkeiten in Ihrer PATH sind. Wenn Sie diese Option wählen, aber dann git aufrufen aus einer Windows-Eingabeaufforderung, die alle die Unix-y Befehlszeilenprogramme, die git beruht auf nicht gefunden werden. IIRC, git selbst wird teilweise als Bash-Skripte implementiert. Ich weiß nicht, welche Operationen fehlschlagen, aber ich glaube nicht, dass git nutzbar sein wird auf diese Weise.

Ich habe keine Liste der Systemtools, die Option 3 überschreibt (das Installationsprogramm find.exe erwähnt), aber dies würde Sie nur beeinflussen, wenn Sie ein Batch-Skript ninja sind. In der Befehlszeile wird, find jetzt beziehen sich auf den Unix-Dienstprogramm dieses Namen, nicht die exe, dass Schiffe mit Fenstern. Es ist nicht schaden Fenster selbst in keiner Weise.

Just mit einer Schere laufen und wählen Sie die Option 3: -)

Wenn Sie den Windows-GUI auf Windows verwenden, und Sie Ihre erste Repository erstellen, geben Sie nicht auf den Namen „.git“ für das Repository-Verzeichnis. (Was es wird dann erstellen, und erstellen Sie dann einen anderen .git Ordner unter es, wenn man endlich denke, es zu sehen) Wechseln Sie zu dem Ordner mit Ihren Quellen in ihm, und - nur den Ordner wählen! Das Repository-Verzeichnis „.get“ wird für Sie erstellt werden.

Dann sehen Sie Dateien in Ihren unstaged Änderungen, und indem Sie auf den kleinen Seitensymbolen klicken neben den Dateinamen, um sie in die Szene gesetzt Veränderungen bewegen.

Und auf jeden Fall mit einer Schere und wählen Sie die Option ausführen 3. Niemand töten verwendet, sortieren oder mehr von der Kommandozeile Fenster finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top