2009-03-08 14 views
39

Jest to ostatnio powiązane z innym question I asked.msysgit w systemie Windows - o czym powinienem wiedzieć?

msysgit Podczas instalacji, instalator zawiera 3 opcje związane ścieżce systemowej:

  1. nigdy się nie zmieniają środowisku Windows. Z tą opcją musisz użyć powłoki "bash" do pracy z git.

  2. Dodaj katalog git \ bin do zmiennej środowiskowej PATH, ale bez przesłonięcia niektórych wbudowanych narzędzi systemu Windows. Fellow stackoverflow-ian Gabe Moothart told me in a comment, że ta opcja spowoduje, że niektóre operacje git zawiedzie! Jakie są te operacje? Czy powinienem się o nie martwić?

  3. To samo co 2, ale zastępuje niektóre domyślne narzędzia systemowe. Czym są te narzędzia? Jakie części okien są od nich zależne? i czy to będzie bolało w praktyce?

Kolejny problem przyszedł mi na myśl, niezwiązany z układem PATH.

Co się stanie, jeśli mam dowiązania symboliczne i twarde linki w moim katalogu projektu? Czy git wie, jak sobie z tym poradzić? lub, czy będzie cierpieć z powodu nieskończonej rekurencji, na przykład struktura katalogów była taka, że ​​jakiś folder był w rzeczywistości dowiązaniem symbolicznym do jednego z jego rodziców?

Odpowiedz

43

Otrzymasz bash niezależnie od tego, którą opcję wybrać, ostatnie opcje wystarczy dodać sposobów zastosowania Git poza nim.

Dla tych ostatnich opcji, msysgit dodaje Okna buduje wspólnych narzędzi Linux do PATH. Obejmuje find, kill i sort, jak również cp, ls, rm, a około 20-30 innym.

Problem z pierwszymi 3 (i podobnymi) polega na tym, że istnieją one w obu systemach operacyjnych i działają w nich odmiennie.

Nie jest to wielka próba, jeśli wiesz, z której z nich będziesz korzystać, ale wszystkie aplikacje opracowane z myślą o jednej i drugiej będą z pewnością sprawiały wrażenie.


Aby uniknąć konfliktu, a jednocześnie o pracę Git zgodnie z oczekiwaniami, można stworzyć prosty skrypt wsadowy, który dostosowuje PATH tylko dla sesji. (Przykład readygit.bat)

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

Regulacja C:\Git\bin odpowiednio. Ale po prostu uruchom to i użyj Git w ramach cmd.

Dzięki temu można użyć opcji instalacji 3 i bezpiecznie usunąć C:\Git\bin z systemu PATH, usuwając wszelkie zamieszanie dla aplikacji Windows, nie myląc Git.

Obecnie używam podobnego skryptu z aplikacjami GnuWin, w tym find.

+2

Alternatywnie, dodaj 'export PATH = $ PATH:/c/mingw/bin:/c/mingw/msys/1.0/bin' do"/etc/bash_profile "Git Basha, aby uzyskać dostęp do MinGW z powłoki msysGit. – rpjohnst

3

W oknach (to jest mniejszy problem w innych systemach, w mojej skromnej opinii ...), musisz być BARDZO świadomy problemów z crlf i pamiętać, że (Chyba że zmienili to w najnowszym wersja Git, którą moim zdaniem mogą mieć - lub jeśli używasz bardzo starej wersji Git), autocrlf jest domyślnie włączony, w przeciwieństwie do wszystkich innych instalacji git.

Należy również pamiętać, że jeśli nie korzystasz z najnowszej wersji programu msysgit, wkrótce w tym tygodniu, jeśli poprawnie przywołam z listy adresowej, rozmiar twojego repozytorium nie może być większy niż 2 GB, łącznie.

Dodatkowo system Windows jest nieczuły na wielkość liter, ale/czasami/zachowuje skrzynkę - należy o tym pamiętać! (To nie myli gita, ale może i myli użytkownika repozytorium git).

Wreszcie, git jest znacznie wolniejszy w oknach niż na Linuksie, chociaż jest (według mojego ograniczonego doświadczenia) szybszy niż alternatywy.

Teraz, jeśli chodzi o ścieżkę ...

O ile się nie mylę, powinieneś być w stanie po prostu upewnić się, że główną git binarny jest w drodze - i to binarny powinien wówczas zadbać o przedstawieniu drugi git components ... Ale nie testowałem tego.

+2

AFAIK, system Windows zawsze zachowuje skrzynkę. Kiedy nazwa jest zogniskowana, Eksplorator Windows pokazuje ją jako małe, ale plik jest przechowywany jako wielka litera. – configurator

+0

To źle, ale byłoby pomocne, gdyby znalazłeś artykuły pomocnicze. :) – Arafangion

3

Instalator GYS MSYS sugeruje opcję 2, jeśli zamierzasz uruchomić git z podpowiedzi cygwin. Środowisko cygwin zapewnia, że ​​zależności git są w zmiennej PATH. Jeśli wybierzesz tę opcję, a następnie wywołasz git z wiersza poleceń systemu Windows, wszystkie narzędzia wiersza polecenia unix-y, na których bazuje git, nie zostaną znalezione. IIRC, sam git jest częściowo implementowany jako skrypty bash. Nie wiem, które operacje zakończą się niepowodzeniem, ale nie sądzę, że git będzie można użyć w ten sposób.

Nie mam listy narzędzi systemowych, które są nadpisywane przez opcję 3 (instalator wspomina o find.exe), ale wpłynęłoby to tylko na ciebie, jeśli jesteś ninją skryptu wsadowego. Na linii poleceń, find będzie teraz odwoływać się do narzędzia uniksowego o tej nazwie, a nie do exe dostarczanego z oknami.W żaden sposób nie uszkadza okien.

Wystarczy uruchomić za pomocą nożyczek i wybierz opcję 3 :-)

+0

Wpłynęłoby to na ninja, które nie używają skryptów, jeśli używają dowolnego narzędzia dołączonego do skryptów wsadowych. Użyłem zbyt wielu takich narzędzi, które prawdopodobnie zawiodą. – configurator

9

Możesz mieć świadomość, że:

  • Wszystkie polecenia git nie są nadal. Na początku marca 2009 MSysGit1.6.2. Archimport, cvsexportcommit, cvsimport, cvsserver, filtr odgałęzieniami, instaweb, wysyłanie wiadomości e-mail, a shell)

  • Do dnia MSysGit1.6.2, git-svn był not there (it is now).
    Problem polegał na tym, że git-svn wymagał perlacji perwersji i można budować je tylko jako dynamicznie ładowane moduły. A MSysGit miał wersję perla, która nie obsługiwała dynamicznie ładowanych modułów.

  • Wszystkie dane o msysgit najlepiej wyjaśnić w swoich MSysGitHerald Github wiki

0

Podczas korzystania z interfejsu GUI systemu Windows w systemie Windows i tworzenia swojego pierwszego repozytorium nie należy wpisywać nazwy ".git" w katalogu repozytoriów. (Który następnie stworzy, a następnie utworzy kolejny.git folder pod nim, kiedy w końcu pomyślisz, aby tam zajrzeć) Przejdź do folderu z zawartymi w nim źródłami i - po prostu wybierz ten folder! Katalog repozytorium ".get" zostanie utworzony dla ciebie.

Następnie widzisz pliki w niezapisanych zmianach i klikając małe ikony stron obok nazw plików, przenieś je do zmian etapowych.

Zdecydowanie biegnij za pomocą nożyczek i wybierz opcję 3. Nikt nie używa zabijania, sortowania ani odnajdywania z linii poleceń.

+0

hmm, to nie ma nic wspólnego z programem msysgit w systemie Windows (tak samo jak w przypadku Linuksa). Pytałem o sposoby, w jakie mogłoby to zakłócać lub w inny sposób zepsuć inne narzędzia systemu Windows. – hasen

Powiązane problemy