Korzystanie z Git z Visual Studio [zamknięte]

1455

Jako długoletni użytkownik Visual SourceSafe (i nienawidzę) rozmawiałem o przejściu na SVN z kolegą; zasugerował użycie Git . Ponieważ najwyraźniej można go używać jako peer-to-peer bez centralnego serwera (jesteśmy zespołem złożonym z 3 programistów).

Nie znalazłem jednak nic na temat narzędzi integrujących Git z Visual Studio - czy istnieje coś takiego?

Jakie technologie są dostępne do korzystania z Git z Visual Studio? I co muszę wiedzieć o tym, czym się różnią, zanim zacznę?

Herb Caudill
źródło
4
Właśnie dodałem Git Source Control Provider dla VS 2010, więc nadal działa.
Wade73,
3
Kasy ten samouczek z zespołu VS . Następna aktualizacja; Aktualizacja 2 dla VS 2012 będzie dostępna każdego dnia. Możesz również pobrać podgląd technologii społeczności (CTP) dla VS2012 tutaj . Alternatywnie, jeśli interesujesz się CMMI, Agile, Scrum 1/2 itd., Możesz zarejestrować się na darmowe konto (zarówno w chmurze publicznej, jak i prywatnej) i zaprosić członków (członków drużyny, klientów) do twojego
Annie,
3
Używam Visual Studio i git od dwóch lat. Powiedziałbym, że najlepszym rozwiązaniem tego problemu jest po prostu użycie oddzielnej aplikacji do kontroli źródła, takiej jak Atlassians SourceTree. Jest bezpłatny, łatwy w instalacji, ma dobry interfejs GUI i jest przyjazny dla użytkownika, możesz przeglądać wiele repozytoriów (inaczej różne projekty), tak jak przeglądasz internet w Chrome, a co najważniejsze, obsługiwać wiele systemów kontroli źródła. Spróbuj! Nie rozczarujesz się, zapewniam cię!
Fazi,
2
Git jest obsługiwany natywnie od Visual Studio 2013
rustyx
17
Uwielbiam to, jak 1342 ludzi głosowało za tym pytaniem, a jakiś idiota i tak je zamyka. Dobrze się układa StackOverfolow .... Jakie to ma znaczenie, jeśli nie spełnia kryteriów SO, jeśli jest tak wielu ludzi, że jest to tak pomocne. Czy celem tej witryny nie jest pomoc?
thebunnyrules

Odpowiedzi:

1070

W styczniu 2013 r. Microsoft ogłosił , że dodaje pełną obsługę Git do wszystkich swoich produktów ALM. Zostały one opublikowane wtyczki dla programu Visual Studio 2012, który dodaje integrację sterowania źródłem Git.

Alternatywnie istnieje projekt o nazwie Git Extensions, który zawiera dodatki do Visual Studio 2005, 2008, 2010 i 2012, a także integrację z Eksploratorem Windows. Jest regularnie aktualizowany i po użyciu go w kilku projektach uważam, że jest bardzo przydatny.

Inną opcją jest Git Source Control Provider .

Jon Rimmer
źródło
9
ted.dennison: Według tej strony ( code.google.com/p/gitextensions ) jest to wtyczka VS 2005/2008.
Jonas
10
Aby poprawić siebie - źródło znajduje się na Github, MSI nie.
Chris S
5
Zainstalowałem rozszerzenia git, działa ono „przez” studio wizualne i nie jest w pełni zintegrowane. Czy istnieje rozwiązanie umożliwiające zameldowanie - wymeldowanie z Eksploratora rozwiązań?
Dani
4
Dani, ktoś pracuje nad dostawcą kontroli źródła Git dla VS, który wydaje się zapewniać nieco głębszy poziom integracji: gitscc.codeplex.com
Jon Rimmer
3
Czy są jakieś opcje dla VS 2012?
Earth Engine
202

Używam Git z Visual Studio dla mojego portu buforów protokołów do C #. Nie używam GUI - po prostu trzymam otwarty wiersz poleceń, a także Visual Studio.

W większości przypadków jest w porządku - jedynym problemem jest zmiana nazwy pliku. Zarówno Git, jak i Visual Studio wolą, aby to one zmieniły jego nazwę. Myślę, że zmiana nazwy w Visual Studio jest dobrym rozwiązaniem - po prostu uważaj, co robisz po stronie Gita. Chociaż w przeszłości było to trochę uciążliwe, słyszałem, że tak naprawdę powinno być dość płynnie po stronie Gita, ponieważ można zauważyć, że zawartość będzie w większości taka sama. (Zwykle nie do końca takie same - zwykle zmieniasz nazwę pliku, gdy zmieniasz nazwę klasy, IME).

Ale w zasadzie - tak, działa dobrze. Jestem początkującym Gitem, ale mogę zmusić go do zrobienia wszystkiego, czego potrzebuję. Upewnij się, że masz plik git ignore dla bin i obj oraz * .user.

Jon Skeet
źródło
35
git powinien być w porządku, gdy VS dokonuje zmiany nazwy. Aby dobrze śledzić zmiany nazw w git log, musisz tylko upewnić się, że etap zmiany „usuń” w tym samym zatwierdzeniu co część „dodaj”. git add -A ułatwia to, jeśli Twój .gitignore jest aktualny.
CB Bailey,
40
Jestem też początkującym gitarzystą i prawdę mówiąc, wolę używać go z wiersza poleceń. Byłbym trochę przestraszony, by poradzić sobie z mocą git dla GUI, które próbuje być „sprytne” i robić „magię” za moimi plecami.
hasen
1
Dzięki za radę. Właśnie przeniosłem się na git (i github) i nigdy nie będę oglądać się za siebie. Mój klient używa perforce (ugh!). Więc moim planem jest zrobienie jednej kasy z perforacji, wykonanie mojej pracy z git, a następnie sprawdzenie z powrotem.
Mark Beckwith
7
@CallMeLaNN: Robisz duże założenie, że początkujący Git mają trudności z używaniem wiersza poleceń. Spójrz na komentarz Hasana J z kwietnia 2009 r.
Jon Skeet
Zwykle dodaję .user, * .suo, bin, obj,. i _ * do mojej listy ignorowanych ... jeśli jest jedna z powyższych, którą chcę dodać, nadal mogę dodać ją ręcznie.
Tracker1
93

Git Source Control Provider to nowa wtyczka, która integruje Git z Visual Studio.

yysun
źródło
Czy jest jakaś szansa na uruchomienie go w 2005 roku?
Art.
3
Dobrze. TBH graficzny interfejs tego właśnie szukałem, kiedy szukałem GUI dla git w VS 2010. Dziękujemy za opublikowanie tego. Inne odpowiedzi nie są tym, czego potrzebuję. Są słabe w porównaniu do VisualSVN.
JDPeckham
1
Polecam przejrzeć sekcję recenzji na marketplace.visualstudio.com/…, zanim zdecyduję się ją zainstalować.
QMaster,
53

Przyglądałem się temu nieco w pracy (zarówno z Subversion, jak i Git). Program Visual Studio faktycznie ma interfejs API integracji kontroli źródła, który umożliwia integrację rozwiązań kontroli źródła innych firm z programem Visual Studio. Jednak większość ludzi nie zawraca sobie tym głowy z kilku powodów.

Po pierwsze, API prawie zakłada, że ​​używasz przepływu pracy zablokowanej kasy. Jest w nim wiele haczyków, które są albo drogie w implementacji, albo po prostu nie mają sensu, gdy używasz bardziej nowoczesnego przepływu pracy edycji i scalania.

Drugim (co jest powiązane) jest to, że kiedy używasz przepływu pracy scalania edycji, który zachęca zarówno Subversion, jak i Git, tak naprawdę nie potrzebujesz integracji Visual Studio. Główną zabójczą rzeczą w integracji SourceSafe z Visual Studio jest to, że możesz (i redaktor) na pierwszy rzut oka stwierdzić, które pliki posiadasz, które musisz sprawdzić, zanim będziesz mógł edytować, a których nie możesz wyrejestrować, nawet jeśli chcesz. Pomoże ci to zrobić voodoo z kontrolą wersji, które musisz zrobić, aby edytować plik. Nic z tego nie jest nawet częścią typowego przepływu pracy Git.

Kiedy używasz Git (lub zwykle SVN), wszystkie twoje interakcje z kontrolą wersji odbywają się przed sesją programistyczną lub po niej (kiedy wszystko działa i zostało przetestowane). W tym momencie używanie innego narzędzia naprawdę nie jest zbyt uciążliwe. Nie musisz ciągle przełączać się tam iz powrotem.

PRZETRZĄSAĆ
źródło
22
Czy nie przenosicie nigdy plików / katalogów ani nie zmieniacie ich nazw? Zacząłem używać VisualSVN kilka miesięcy temu i nigdy nie mogłem wrócić.
JohnOpincar,
10
@TED ​​Dla mnie oznacza to, że po długim rozwoju musisz pamiętać powody każdej zmiany pliku, dopóki nie zameldujesz się. Jeśli pracuję nad czymś i widzę coś, co należy naprawić w niezwiązanym obszarze, chcę to sprawdzić, napraw i sprawdź, wiedząc, że mogę usunąć tę zmianę z pamięci. Wolę to zrobić od wewnątrz VS
Peter M
4
Wtyczka Git Extensions Visual Studio nie próbuje się włączyć do starego interfejsu API kontroli źródła zablokowanej kasy, udostępnionego przez Microsoft. Jest bardzo dobrze dostosowany do przepływu pracy scalania edycji i po prostu dodaje zatwierdzenie / push / pull i historię plików bezpośrednio w IDE. Posiadanie historii plików w menu kontekstowym jest niezwykle przydatne!
Jacob Stanley,
3
Nie zgadzam się głównie dlatego, że wychodzenie ze studia wizualnego w celu odprawy zachęca do dłuższych przerw między odprawami. Zbyt wiele osób już zameldowało się na początku dnia i nie zameldowało się do końca (lub gorszych dni później). Integracja ze studiem wizualnym pozwala na ciągłą kontrolę źródła w trakcie pracy.
Chris McGrath,
8
Integracja sterowania źródłami Visual Studio od wersji VS2005 (VS2003?) Nie skłania się szczególnie w stronę modelu kasowego. Spójrz na przykład na AnkhSVN. Wolę integrację VS, ponieważ wtedy zmiany nazw itp. Są płynniejsze.
Roger Lipscombe,
38

Uważam, że Git, działający na całych drzewach, czerpie mniejsze korzyści z integracji IDE niż narzędzia kontroli źródła, które są albo oparte na plikach, albo stosują się do wzorca kasa-edycja-zatwierdzenie. Oczywiście zdarzają się sytuacje, w których może być miło kliknąć przycisk, aby dokonać przeglądu historii, ale nie tęsknię tak bardzo.

Rzeczywistym obowiązkiem jest zapełnienie pliku .gitignore rzeczy, które nie powinny znajdować się we współdzielonym repozytorium. Mój ogólnie zawiera (między innymi):

*.vcproj.*.user
*.ncb
*.aps
*.suo

ale jest to mocno stronnicze w C ++, przy niewielkim lub zerowym wykorzystaniu funkcji stylu klasowego.

Mój wzorzec użytkowania jest podobny do następującego.

  1. Kod, kod, kod w Visual Studio.

  2. Kiedy jest szczęśliwy (rozsądny punkt pośredni do zatwierdzenia kodu, przełącz się na Git, zmieniaj etapy i sprawdzaj różnice. Jeśli coś jest oczywiście źle, wróć z powrotem do Visual Studio i napraw, w przeciwnym razie zatwierdź.

Wszelkie operacje scalania, rozgałęziania, rebase i inne wymyślne operacje SCM są łatwe w Git z wiersza poleceń. Visual Studio jest zwykle dość zadowolony z rzeczy, które się pod nim zmieniają, chociaż czasem może wymagać ponownego załadowania niektórych projektów, jeśli znacząco zmieniono pliki projektów.

Uważam, że użyteczność Git przewyższa wszelkie drobne niedogodności związane z brakiem pełnej integracji IDE, ale jest to do pewnego stopnia kwestia gustu.

CB Bailey
źródło
11
Nie, zdecydowanie powinieneś mieć plik projektu pod kontrolą wersji.
CB Bailey,
1
Jest to bardzo ważne - powrót do zdrowia po zapomnieniu o włączeniu czegoś do .gitignore, gdy zacząłeś się angażować, a rozgałęzienie jest bolesne, mówiąc co najmniej ...
Benjol
3
@Benjol: To nie powinno być tak bolesne. Musisz tylko git rm <file>i echo <file> >>.gitignore; git add .gitignorena wskazówkach swoich aktywnych oddziałów. Po dokonaniu zmiany raz możesz zawsze wybrać poprawkę do innych gałęzi.
CB Bailey,
1
@Charles Bailey, zobacz moje przygody w tym pytaniu: stackoverflow.com/questions/1887049/…
Benjol
9
@Mike Brown: Ignoruje pliki * .user, które są ustawieniami specyficznymi dla użytkownika.
Srdjan Jovcic
31

Microsoft ogłosił niedawno Git for Visual studio 2012 (aktualizacja 2). Jeszcze się z tym nie bawiłem, ale ten film wygląda obiecująco.

Oto krótki samouczek na temat korzystania z Git z Visual Studio 2012.

Chandramouleswaran Ravichandra
źródło
Polecam ten, ponieważ jest to oficjalny produkt Microsoft. i można go zainstalować na VS 2012 express i
Cheung
28

Nie przegap też TortoiseGit ... https://tortoisegit.org/

tonyo
źródło
Tak, jest to dobry interfejs użytkownika, ale nie, nie integruje się z Visual Studio.
Scott Rippey,
3
Git Source Control Provider dodaje polecenia TortoiseGit do menu kontekstowego w Visual Studio.
HotN
26

Istnieją narzędzia Visual Studio Tools dla Git firmy Microsoft. Obsługuje tylko Visual Studio 2012 (aktualizacja 2).

Sheng Jiang 蒋 晟
źródło
dla Visual Studio 2012 to najlepsza odpowiedź. Wygląda na to, że włożyli dużo wysiłku we wdrożenie, a z mojego doświadczenia wynika, że ​​działa zgodnie z oczekiwaniami!
RoelF
2
Nie byłem w stanie dowiedzieć się, jak skonfigurować „Visual Studio Tools for Git” firmy Microsoft do korzystania z prywatnego repozytorium Github. Czy widziałeś na ten temat jakąkolwiek dokumentację lub samouczki?
golliher
Polecam przejrzeć sekcję recenzji na marketplace.visualstudio.com/…, zanim zdecyduję się ją zainstalować.
QMaster,
18

Obsługa Git wykonywana przez Microsoft w Visual Studio jest wystarczająca do podstawowej pracy (zatwierdzanie / pobieranie / scalanie i wypychanie). Radzę tylko tego unikać ...

Bardzo wolę GitExtensions (lub w mniejszym stopniu SourceTree ). Ponieważ zobaczenie DAG jest dla mnie bardzo ważne, aby zrozumieć, jak działa Git. I jesteś o wiele bardziej świadomy tego, co zrobili inni autorzy Twojego projektu!

W programie Visual Studio nie można szybko zobaczyć różnicy między plikami ani zatwierdzeń, ani (dodać do indeksu) i zatwierdzić tylko części modyfikacji. Przeglądaj swoją historię też nie jest dobra ... Wszystko to kończy się bolesnym doświadczeniem!

I na przykład GitExtensions jest pakowany z interesującymi wtyczkami: pobieranie w tle, GitFlow, ... a teraz ciągła integracja !

Dla użytkowników programu Visual Studio 2015 Git nabiera kształtu, jeśli zainstalujesz rozszerzenie GitHub. Ale narzędzie zewnętrzne jest jeszcze lepsze ;-)

Philippe
źródło
czy GitExtensions działa dla Ciebie w porównaniu do 2015 roku? menu nie działa dla mnie github.com/gitextensions/gitextensions/issues/2815
raklos
15

TortoiseGit dojrzał i polecam go szczególnie, jeśli używałeś TortoiseSVN.

SurfRat
źródło
10

Jak wspomniał Jon Rimmer, możesz użyć GitExtensions. GitExtensions działa w Visual Studio 2005 i Visual Studio 2008, działa również w Visual Studio 2010, jeśli ręcznie skopiujesz i skonfigurujesz plik .Addin.

Henk
źródło
dobry. Zastanawiam się, kto testuje i zatwierdza interfejs użytkownika ... wiadomości są bardzo mylące ... zgaduję tylko, że rzucili się, aby go opublikować i zobaczyć, co / dlaczego użytkownik narzeka.
ramnz 24.04.13
10

Obecnie istnieją 2 opcje Kontroli źródła Git w Visual Studio (2010 i 12):

  1. Git Source Control Provider
  2. Microsoft Git Provider

Próbowałem obu i odkryłem, że pierwszy jest bardziej dojrzały i ma więcej funkcji. Na przykład gra ładnie z gitem żółwia i rozszerzeniami gita, a nawet ujawnił ich funkcje.

Uwaga : Niezależnie od tego, jakiego rozszerzenia używasz, upewnij się, że jest ono włączone Tools -> Options -> Source control -> Plugin Selection, aby działało.

Tarun
źródło