Edytuj (jeszcze 2 lata później: październik 2014)
Johannes Schindelin właśnie wyjaśnił (październik 2014), że msysgit zostaje wycofany :
mamy teraz lekki zestaw Git dla Windows SDK - który jest zasadniczo standardowym systemem MinGW / MSys zarządzanym przez menedżera pakietów mingw-get.
Zdecydowaliśmy się po prostu wycofać nazwę "msysGit" (jak również GitHub org o tej samej nazwie ) i pracować nad Git for Windows (z odpowiednią organizacją GitHub) , używając nazwy "Git for Windows" dla instalatora mającego na celu w sekcji „użytkownicy końcowi” i „Git for Windows SDK” dla środowiska programistycznego przeznaczonego dla deweloperów Git for Windows).
Edytuj (3 lata później: kwiecień 2012)
MsysGit (teraz na GitHub ) to dobry sposób na szybki start w świecie Git: rozpakuj archiwum, uruchom git-cmd.bat
lub git-bash.bat
i gotowe.
Jego najnowsza wersja (1.7.10, kwiecień 2012) obejmuje teraz obsługę UTF-8 , również zawartą w GitExtension . Nie zapomnij jednak ustawić swojego autocrlf
na fałsz .
Jeśli naprawdę brakuje ci wszystkich innych poleceń unixa, a nie pakietów z msysgit, po prostu pobierz wydanie GoW (Gnu dla Windows) , trafnie nazwane „Lekka alternatywa dla Cygwin”.
Mam na myśli: 130 poleceń unixa ...
Cygwin powinien być rozwiązaniem do tworzenia kopii zapasowych tylko w niektórych przypadkach, takich jak szybkość transferu dużych repozytoriów Git, jak wspomniano poniżej w swojej odpowiedzi inkrementor .
Czerwiec 2012: jeśli chcesz współdziałać z GitHubem , masz teraz http://windows.github.com (zobacz także „ Projektowanie GitHub dla Windows ”).
Nie tylko skonfiguruje dla Ciebie klucze ssh (i doda wygenerowany klucz publiczny do Twojego profilu GitHub), ale także zainstaluje, dla wszystkich operacji git, plik ... MsysGit.
Oryginalna odpowiedź (kwiecień 2009)
Nie mam problemu z najnowszą wersją MsysGit:
używam opcji 2 , co oznacza, że dodaję tylko katalog git \ bin do zmiennej środowiskowej PATH, ale bez nadpisywania niektórych wbudowanych narzędzi systemu Windows.
Udało mi się zdefiniować narzędzia zewnętrzne, takie jak Notepad ++ i WinMerge (lub DiffMerge)
Z powodzeniem uruchomiłem skrypty, takie jak svn2git, ponieważ od MsysGit1.6.2 + zawiera polecenie „ git svn
”.
I wreszcie nie mogę się doczekać MsysGit1.6.2.3, ponieważ wreszcie będzie zawierał git filter-branch
polecenie ' ' ! (powolna wersja filter-branch, ale nadal).
W przypadku polecenia Unix wolę zainstalować pakiet coreutils GnuWin32 i używać ich tylko wtedy, gdy ich potrzebuję.
Podsumowując, nie używam warstwy Cygwin i udało mi się bardzo dobrze uruchomić Gita w jego wersji MsysGit opartej na systemie Windows.
Tak. Stare pytanie. Nowa odpowiedź:
Używamy MSYSgit od około 2 lat w dużym wdrożeniu. Szybkość transferów z lokalnego serwera repozytorium git została ograniczona do mniej niż 5 MiB / s. Wcześniejsze badanie problemu wskazywało, że problem dotyczył programistów MSYS pracujących w systemie Windows XP i Windows 7, które ograniczały połączenia z wiersza poleceń / powłoki bash. W rzeczywistości nie wydaje się to być problemem.
Odkryłem posty na blogu Darrella Mozingo i przetestowałem klon dużego (wiele GiB) repozytorium przy użyciu tylko instalacji Cygwin. Prędkości transferu mieściły się w zakresie 30 MiB / s. Problem polega na tym, że MSYSgit używa starego pliku binarnego OpenSSH z 2007 roku.
W tym celu, dopóki to nie zostanie naprawione, zalecam teraz przejście na Cygwin (mimo że wersja git jest nieco w tyle). Odkryłem również, że Cygwin jest bardziej stabilny i mniej prawdopodobne, że zabraknie pamięci w perlu.
źródło
Próbowałem używać zarówno wersji MSYS, jak i Cygwin git, i szczerze mówiąc, żadne z tych doświadczeń nie było dla mnie szczególnie dobre. Po prostu nie sądzę, że git jest jeszcze naprawdę gotowy na Windows.
Biorąc to pod uwagę, jednym z problemów, które znalazłem w wersji MSYS, jest to, że konwertuje ona zakończenia linii w twoich (niebinarnych) plikach ze stylu UNIX (przesuw o wiersz) do stylu DOS (powrót karetki / wysuw linii). Możesz uznać to za błąd lub funkcję, ale nie ma sposobu, aby zmienić zachowanie, które mogłem znaleźć. (EDYCJA: ustaw zmienną konfiguracyjną
core.autocrlf
nafalse
. Dzięki Brian).OTOH, wersja MSYS git ma pewne funkcje GUI, które nie są dostępne w wersji cygwin, chyba że chcesz zainstalować i uruchomić cały serwer X. (Dzięki Joce za potwierdzenie tego).
Mam wrażenie, że wersja MSYS jest bardziej popularna, chociaż może to wynikać z faktu, że nie trzeba instalować ekosystemu cygwin, aby z niej korzystać. (I zgadzam się, cygwin jest niezwykle przydatny.)
Osobiście wybrałbym Bazar lub Mercurial , z których każdy ma lepszą obsługę IMO systemu Windows.
źródło
Zarówno Cygwin, jak i Msys Git działają dość dobrze w normalnych przypadkach użycia. Jeśli chcesz używać skryptów, takich jak git-svn, Cygwin jest lepszym rozwiązaniem. Jako starzy użytkownicy Windowsa, którzy w końcu wskoczyli na Linuksa, z pewnością mogę powiedzieć, że Cygwin jest wielkim dobrodziejstwem i warto go mieć sam w sobie.
Kontekst jest jednak ważny; jakie to projekty? Kto z nich korzysta? Itp.
źródło
Przetestowałem również oba światy (CygWin i MSysgit), z mojego doświadczenia wynika również, że są pewne niedociągnięcia w bash MSysgit. Nie można pomyślnie uruchomić git stash, podczas gdy Cygwin obsługiwał go z wdziękiem na tym samym repozytorium git.
Jednak nie przeprowadzono jeszcze dogłębnej analizy ...
źródło
Obecnie używam Msysgit razem z TortoiseGit.
Interfejs użytkownika MsysGit nie bardzo mi się podoba, więc używam znanego narzędzia, takiego jak TortoiseGit, a podczas pracy z wierszem poleceń (przez większość czasu) używam pliku binarnego git z Msysgit
źródło
Polecam msysgit. Zwłaszcza jeśli jest używany z rozszerzeniami Git : zapewnia łatwy sposób konfiguracji środowiska: narzędzia edytora / porównywania / scalania oraz pozwala na wykonywanie zaawansowanych operacji git z poziomu interfejsu użytkownika.
źródło
Napotkałem poważne błędy w implementacji cygwin w MSys: niektóre polecenia, zwłaszcza rebase, były dość podatne na awarie. Cygwin był dla mnie znacznie bardziej stabilny.
To powiedziawszy, to było miesiąc temu, od tego czasu mogło się poprawić.
źródło
Używałem zarówno Cygwin Git, jak i Msysgit w systemie Windows. Sugerowałbym użycie Cygwin + Git. Cygwin 1.7 (obecnie w wersji beta) rozwiązuje główny niuans (przynajmniej dla mnie) podczas korzystania z git gui i gitk. Wcześniejsze wersje Cygwina otwierały dziesiątki okien cmd za każdym razem, gdy robię coś w git-gui lub gitk. Problem ten został rozwiązany w wersji 1.7. Potężna powłoka Cygwina zawiera również wiele zalet terminala linux.
To powiedziawszy, Msysgit ewoluował całkiem sporo i jest naprawdę przydatny w systemie Windows. Jednak napotkałem kilka problemów.
Problem z uprawnieniami: kilka plików utworzonych natywnie w systemie Windows miało tryb 755, który został przekonwertowany na 644 podczas korzystania z Msysgit. To byłoby widoczne jako zmodyfikowane pliki. Zameldowanie powinno rozwiązać ten problem.
CRLF: wszystkie nieuchwytne CRLF, jak zwykle, powodują problemy w systemie Windows. Msysgit może zgłaszać pliki jako zmodyfikowane. Można to naprawić, wybierając opcję „Pozostaw końcówki wierszy niezmienione” (zapomniałem dokładnego tekstu) podczas instalacji Msysgit.
Daemon: I tak, nadal jest mi ciężko skonfigurować demona git w Msysgit.
źródło
Nowa odpowiedź na stare pytanie ...
Używam git 1.7.3 z powłoki cmd systemu Windows 7 i działa świetnie. Używam mieszanki wiersza poleceń git i git gui i oba działają dobrze od miesięcy. Mieliśmy problemy ze zwrotem karetki / wysuwem wiersza, zaostrzone, gdy dodaliśmy do zespołu programistów Mac, ale zostały one rozwiązane przez ...
Nie mówię, że nie powinieneś używać powłoki * nix-y, tylko że nie jest to konieczne.
źródło
Mam zastrzeżenia do CygWina ponieważ chcę tylko gita, a nie innych narzędzi, które Cygwin chce włożyć. Zwykle chcesz, aby komputer z systemem Windows działał jak komputer z systemem Windows, a CygWin chce uderzyć w coś zupełnie innego. Klepanie funkcji * nix tylko dla kopnięć nie jest możliwe.
Chodzi o to, że jeśli kiedykolwiek chciałbym pracować z * nix jak wierszem poleceń, przeszedłem na mój komputer z Linuksem i zamiast tego pracowałem na tym komputerze. Komputery wirtualne i zdalne komputery stacjonarne działają obecnie jak urok i są wystarczająco dostępne dla programistów.
Naprawdę musi istnieć uzasadniony powód, aby używać CygWin. Jeśli jest to tylko do używania gita, sugerowałbym użycie MSysGit zamiast tego, co jest moim preferencją. Działa bardzo dobrze z dołączonymi narzędziami gitk i git-gui. Pracowałem zarówno nad Eclipse, jak i Visual Studio używając msysgit i działa to jak urok.
Jedyne, na co teraz czekam, to w pełni działający klon Tortoise dla git .
źródło
W systemie Windows jest jeden scenariusz, w którym po prostu musisz użyć Gita przez Cygwin: jest to sytuacja, w której chcesz użyć Gita przeciwko serwerowi SVN, który oczekuje wersji klienta SVN wyższych niż 1.5. Istnieją punkty zaczepienia SVN przed zatwierdzeniem, które blokują zatwierdzenia, gdy nie ma argumentu „mergeinfo” - a argument „mergeinfo” jest domyślny w SVN tylko od wersji 1.5. Problem z msysGit polega na tym, że jest zbudowany na starszej wersji SVN (1.4.6), więc nie możesz pomyślnie zatwierdzić w tym przypadku. Ale jest to możliwe dzięki Gitowi Cygwin, ponieważ jest zbudowany na nowszych wersjach SVN.
źródło
Jeśli chcesz wykonywać proste czynności, takie jak push / pull / branching, możesz wypróbować SourceTree firmy Atlasian. Bardzo prosty i przejrzysty interfejs użytkownika dla polecenia Git. Jednak nadchodzi krótki czas.
Jeśli chcesz użyć narzędzia git wiersza poleceń, po prostu pobierz narzędzie Git dla systemu Windows. Powinno wystarczyć, chyba że zaczniesz szukać w skryptach basha.
źródło