Git'i Visual Studio ile kullanma [kapalı]


1455

Uzun zamandır Visual SourceSafe kullanıcısı (ve düşmanı) olarak bir meslektaşımla SVN'ye geçmeyi tartışıyordum ; onun yerine Git'i kullanmayı önerdi . Görünüşe göre, merkezi bir sunucu olmadan eşler arası olarak kullanılabilir (biz 3 geliştirici bir ekibiz).

Git'i Visual Studio ile entegre eden araçlar hakkında hiçbir şey bulamadım - böyle bir şey var mı?

Git'i Visual Studio ile kullanmak için mevcut teknolojiler nelerdir? Ve başlamadan önce nasıl farklılaştıkları hakkında ne bilmem gerekiyor?


4
VS 2010 için Git Source Control Provider'ı ekledim, bu yüzden hala çalışıyor.
Wade73

3
VS ekibinden bu öğreticiye göz atın . Bir sonraki güncelleme; VS 2012 için güncelleme 2 herhangi bir gün geliyor. Ayrıca VS2012 için topluluk teknolojisi önizlemesini (CTP) buradan indirebilirsiniz . Alternatif olarak, CMMI, Agile, Scrum 1/2 vb. İçindeyseniz, ücretsiz hesap (hem genel hem de özel bulut örnekleri) için kaydolabilir
Annie

3
İki yıldır Visual Studio ve git kullanıyorum. Bu sorunun en iyi çözümünün Atlassians SourceTree gibi ayrı bir kaynak kontrol uygulaması kullanmak olduğunu söyleyebilirim. Ücretsiz, kurulumu kolay, iyi bir GUI'ye sahiptir ve kullanıcı dostudur, tıpkı Chrome'da web'e göz atabileceğiniz gibi birden çok veri havuzuna (farklı projeler olarak da) göz atabilir ve en önemlisi birden çok kaynak kontrol sistemini destekleyebilirsiniz. Bir şans ver! Hayal kırıklığına uğramayacaksınız, sizi temin ederim!
Fazi

2
Git, Visual Studio 2013'ten itibaren yerel olarak desteklenmektedir
rustyx

17
1342 kişinin bu soruyu nasıl iptal ettiğini seviyorum ve bazı aptallar yine de geliyor ve kapatıyor. İyi gidiyor StackOverfolow .... Eğer çok fazla insan çok yararlı bulursa SO kriterlerine uymuyorsa ne önemi var. Bu web sitesinin amacı yardımcı olmak değil mi?
thebunnyrules

Yanıtlar:


1070

Ocak 2013'te Microsoft , tüm ALM ürünlerine tam Git desteği eklediklerini açıkladı . Onlar var bir eklenti yayınladı Git kaynak kontrolü entegrasyonu ekler Visual Studio 2012 için.

Alternatif olarak, Visual Studio 2005, 2008, 2010 ve 2012 için eklentileri ve Windows Gezgini entegrasyonunu içeren Git Uzantıları adlı bir proje var . Düzenli olarak güncelleniyor ve birkaç projede kullandım, çok yararlı buldum.

Başka bir seçenek Git Kaynak Kontrol Sağlayıcısıdır .


9
ted.dennison: Bu sayfaya göre ( code.google.com/p/gitextensions ) bir VS 2005/2008 eklentisidir.
Jonas

10
Kendimi düzeltmek için - kaynak Github'da barındırılıyor, MSI'lar değil.
Chris S

5
Git uzantılarını yükledim, görsel stüdyo tarafından "çalışır" ve tamamen entegre değil. Çözüm Gezgini'nden check-in - check-out yapılmasını sağlayan bir çözüm var mı?
Dani

4
Dani, birisi VS için biraz daha derinlemesine bir entegrasyon seviyesi sağlayan bir Git kaynak kontrol sağlayıcısı üzerinde çalışıyor: gitscc.codeplex.com
Jon Rimmer

3
VS 2012 için herhangi bir seçenek var mı?
Earth Engine

202

Git, Visual Studio ile C # için Protokol Arabellekleri bağlantı noktası kullanıyorum. GUI kullanmıyorum - Visual Studio'nun yanı sıra bir komut satırı da açık tutuyorum.

Çoğunlukla sorun değil - tek sorun bir dosyayı yeniden adlandırmak istediğinizde. Git ve Visual Studio Hem ediyorum doğrusu o onlar yeniden adlandırmak biri idi. Bence Visual Studio'da yeniden adlandırmanın bir yolu var - sadece daha sonra Git tarafında ne yaptığınıza dikkat edin. Bu geçmişte biraz acı vermesine rağmen, Git tarafında aslında oldukça sorunsuz olması gerektiğini duydum, çünkü içeriğin çoğunlukla aynı olacağını fark edebiliyor. (Tamamen aynı değildir, genellikle - sınıfı IME olarak yeniden adlandırırken bir dosyayı yeniden adlandırma eğilimindesiniz.)

Ama temel olarak - evet, iyi çalışıyor. Ben bir Git acemiyim, ama ihtiyacım olan her şeyi yapabilirim. Bin ve obj ve * .user için bir yoksayma dosyanız olduğundan emin olun.


35
git yeniden adlandırma yapıyor VS ile iyi olmalıdır. Git günlüğünde iyi yeniden adlandırma izlemesi için, değişikliğin 'kaldır' bölümünü 'ekleme' bölümü ile aynı taahhütte hazırladığınızdan emin olmanız gerekir. git add -A, .gitignore'nuz güncelse bunu kolaylaştırır.
CB Bailey

40
Ben de bir git acemi değilim ve size gerçeği söylemek için komut satırından kullanmayı tercih ederim . Git gücünü "zekice" olmaya çalışan bir GUI'ye ve arkamdan "sihir" yapmaya çalışan biraz korkuyorum.
hasen

1
Tavsiye için teşekkürler. Ben sadece git (ve github) taşındı ve asla geri bakmayacağım. Müvekkilim performans kullanıyor (ugh!). Bu yüzden planım performanstan bir çıkış yapmak, git ile işimi yapmak, sonra tekrar kontrol etmek.
Mark Beckwith

7
@CallMeLaNN: Git'in yeni başlayanlar için komut satırını kullanırken zorluk çektiği konusunda büyük bir varsayım yapıyorsunuz. Hasan j adlı kullanıcının Nisan 2009 tarihli yorumuna bakın.
Jon Skeet

Genellikle .user, * .suo, bin, obj, eklerim. ve _ * yoksayma listeme ... yukarıdakilerden birini eklemek istiyorum, yine de manuel olarak ekleyebilirim.
Tracker1

93

Git Source Control Provider , Git'i Visual Studio ile entegre eden yeni bir eklentidir.


2005 yılında çalışmasını sağlamak için herhangi bir şans var mı?
Art

3
İyi. Bunun grafik arayüzü TBH VS 2010 içinde git için bir GUI aradığımda tam olarak aradığım şeydi. Bunu gönderdiğiniz için teşekkürler. Diğer cevaplar ihtiyacım olan şey değil. VisualSVN ile karşılaştırıldığında zayıflar.
JDPeckham

1
Yüklemeye karar vermeden önce marketplace.visualstudio.com/… adresindeki inceleme bölümünü görmenizi öneririz .
QMaster

53

Ben işte bu biraz içine baktım (Subversion ve Git ile). Visual Studio, üçüncü taraf kaynak kontrol çözümlerini Visual Studio'ya entegre etmenize olanak tanıyan bir kaynak kontrolü entegrasyon API'sine sahiptir. Ancak, çoğu insan birkaç nedenden dolayı onunla uğraşmaz.

Birincisi, API'nin kilitli bir ödeme iş akışı kullandığınızı varsayar. İçinde uygulamak için çok pahalı olan ya da sadece modern düzenleme-birleştirme iş akışını kullandığınızda mantıklı olmayan birçok kanca var.

İkincisi (ilişkili olan), Subversion ve Git'in teşvik ettiği edit-merge iş akışını kullandığınızda gerçekten Visual Studio entegrasyonuna ihtiyacınız yoktur . SourceSafe'in Visual Studio ile entegrasyonu ile ilgili ana öldürücü şey, sizin (ve editörün) bir bakışta sahip olduğunuz, düzenleyebilmeniz için hangi dosyaların kontrol edilmesi gerektiğini ve isteseniz bile hangilerini kontrol edemeyeceğinizi söyleyebilmenizdir. Ardından, bir dosyayı düzenlemek istediğinizde yapmanız gereken revizyon kontrolü voodoo'sunu yapmanıza yardımcı olabilir. Bunların hiçbiri tipik bir Git iş akışının parçası bile değildir.

Git'i (veya tipik olarak SVN'yi) kullandığınızda, revizyon-kontrol etkileşimleriniz ya geliştirme oturumunuzdan önce ya da sonra (her şey çalışır ve test edildikten sonra) gerçekleşir. Bu noktada, farklı bir araç kullanmak gerçekten çok fazla acı değil. Sürekli ileri ve geri gitmek zorunda değilsiniz.


22
Dosyaları / dizinleri hiç taşımıyor veya yeniden adlandırmıyor musunuz? VisualSVN kullanmaya birkaç ay önce başladım ve asla geri dönemedim.
JohnOpincar

10
@TED ​​Benim için bu, uzun bir gelişmeden sonra check-in yapana kadar her dosya değişikliğinin nedenlerini hatırlamak zorunda olduğunuz anlamına gelir. Eğer bir şey üzerinde çalışıyorsam ve ilgisiz bir alanda düzeltilmesi gereken bir şey görürsem, düzelt ve bu değişikliği hafızamdan temizleyebileceğimi kontrol et. Bunu VS içinden yapmayı tercih ederim
Peter M

4
Git Uzantıları Visual Studio eklentisi, Microsoft'un sağladığı eski okul kilitli çıkış kaynağı kontrol API'sına kendini sokmaya çalışmaz. Bir düzenleme-birleştirme iş akışı için çok uygundur ve temel olarak sadece IDE'nin içine taahhüt / itme / çekme ve dosya geçmişi ekler. Bağlam menüsünde dosya geçmişine sahip olmak son derece yararlıdır!
Jacob Stanley

3
Esas olarak katılmıyorum çünkü check-in yapmak için görsel stüdyodan çıkmak zorunda kalmak check-in'ler arasında daha uzun süreleri teşvik ediyor. Çok sayıda kişi günün başında ödeme yapıyor ve sonuna kadar (veya daha kötü günler sonra) check-in yapmıyor. Visual studio ile entegrasyon, kaynak kontrolünü sürekli olarak iş akışınızda tutmanızı sağlar.
Chris McGrath

8
VS2005 (VS2003?) İtibarıyla Visual Studio kaynak denetimi tümleştirmesi, kullanıma alma denetimi modeline yönelik değildir. Örneğin AnkhSVN'ye bakın. VS entegrasyonunu tercih ederim, çünkü yeniden adlandırma vb.
Roger Lipscombe

38

Git'in tüm ağaçlarda çalıştığı gibi, IDE entegrasyonundan dosya tabanlı veya bir ödeme-düzenle-taahhüt modelini takip eden kaynak kontrol araçlarından daha az fayda sağladığını düşünüyorum. Tabii ki bazı tarih muayenesi yapmak için bir düğmeye tıklamanın güzel olabileceği durumlar var, ama bunu çok özlemiyorum.

Gerçek yapmanız gereken, .gitignore dosyanızı paylaşılan bir depoda olmaması gereken şeylerle dolu hale getirmektir. Benimki genellikle (diğer şeylerin yanı sıra) aşağıdakileri içerir:

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

ancak bu, C ++ herhangi bir sınıf sihirbazı stili işlevselliğinin çok az kullanılması veya hiç kullanılmaması nedeniyle önyargılıdır.

Kullanım şeklim aşağıdaki gibi.

  1. Visual Studio'da kod, kod, kod.

  2. Ne zaman mutlu (mantıklı orta nokta kodu işlemek için Git, sahne değişiklikleri ve gözden geçirme farkları.Gerçekten yanlış bir şey varsa Visual Studio'ya geri dönün ve düzeltin, aksi takdirde taahhüt edin.

Git'te komut isteminden herhangi bir birleştirme, şube, yeniden pazarlama veya diğer süslü SCM öğelerinin yapılması kolaydır. Visual Studio normalde altında değişen şeyler ile oldukça mutludur, ancak bazen proje dosyalarını önemli ölçüde değiştirdiyseniz bazı projeleri yeniden yüklemeniz gerekebilir.

Git'in kullanışlılığının, tam IDE entegrasyonuna sahip olmama konusundaki küçük rahatsızlıklardan daha ağır bastığını görüyorum, ancak bir dereceye kadar zevk meselesi.


11
Yapmazsınız, proje dosyanızı kesinlikle sürüm kontrolü altında tutmalısınız.
CB Bailey

1
Bu çok önemlidir - taahhütte bulunduğunuzda ve dallanmaya başladığında .gitignore'a bir şey eklemeyi unutmaktan kurtulmak, en azından söylemek acı verici ...
Benjol

3
@ Benjol: O kadar acı verici olmamalı. Sadece gerekir git rm <file>ve echo <file> >>.gitignore; git add .gitignoreetkin şube ipuçlarını. Değişikliği bir kez yaptıktan sonra, düzeltmeyi her zaman diğer dallara taşıyabilirsiniz.
CB Bailey

1
@Charles Bailey, bu sorudaki maceralarıma bakın: stackoverflow.com/questions/1887049/…
Benjol

9
@Mike Brown: Kullanıcıya özel ayar olan * .user dosyalarını yok sayar.
Srdjan Jovcic


28

Ayrıca TortoiseGit kaçırmayın ... https://tortoisegit.org/


Evet, bu iyi bir kullanıcı arayüzü, ancak hayır, Visual Studio ile entegre değil.
Scott Rippey

3
Git Source Control Provider, TortoiseGit komutlarını Visual Studio'daki içerik menüsüne ekler.
HotN

26

Microsoft tarafından Git için bir Visual Studio Araçları var . Ancak yalnızca Visual Studio 2012'yi (güncelleme 2) destekler.


visual studio 2012 için en iyi cevap budur. Görünüşe göre uygulamada çok çaba sarf ediyorlar ve tecrübelerime göre beklendiği gibi çalışıyor!
RoelF

2
Özel bir Github deposunu kullanmak için Microsoft tarafından "Git için Visual Studio Araçları" nı nasıl yapılandıracağımı anlayamadım. Bununla ilgili herhangi bir belge veya öğretici gördünüz mü?
golliher

Yüklemeye karar vermeden önce marketplace.visualstudio.com/… adresindeki inceleme bölümünü görmenizi öneririz .
QMaster


18

Microsoft tarafından Visual Studio'da yapılan Git desteği, temel işler için yeterli (taahhüt / getir / birleştir ve it). Benim tavsiyem sadece bundan kaçınmaktır ...

GitExtensions (veya daha az oranda SourceTree ) tercih ederim . Çünkü DAG'ı görmek nasıl çalıştığını anlamak için çok önemli. Ve projenize diğer katkıda bulunanların neler yaptığını çok daha iyi biliyorsunuz!

Visual Studio'da, dosyalar veya kesinleştirme arasındaki farkı hızlı bir şekilde göremezsiniz veya (dizine ekleme) ve değişikliklerin yalnızca bir bölümünü gerçekleştiremezsiniz. Geçmişinize göz atın da iyi değil ... Bütün bunlar acı dolu bir deneyimle bitiyor!

Örneğin, GitExtensions ilginç eklentilerle birlikte gelir: arka plan getirme, GitFlow, ... ve şimdi, sürekli entegrasyon !

Visual Studio 2015 kullanıcıları için GitHub uzantısını yüklerseniz Git şekilleniyor. Ancak harici bir araç daha iyidir ;-)


vs 2015'te GitExtensions sizin için çalışıyor mu? menü benim için çalışmıyor github.com/gitextensions/gitextensions/issues/2815
raklos




10

Jon Rimmer tarafından yönetildiği gibi GitExtensions'ı kullanabilirsiniz. GitExtensions Visual Studio 2005 ve Visual Studio 2008'de çalışır, ayrıca .Addin dosyasını el ile kopyalayıp yapılandırırsanız Visual Studio 2010'da da çalışır.


İyi bir. Kullanıcı arayüzünü kimin test ettiğini ve onayladığını merak ediyorum ... her yerde mesajlar çok kafa karıştırıcı ... tek tahminim, kullanıcıların ne / neden şikayet ettiğini görmek için acele etmeleridir.
ramnz

10

Şu anda Visual Studio'da (2010 ve 12) Git Kaynak Denetimi için 2 seçenek vardır:

  1. Git Kaynak Kontrol Sağlayıcısı
  2. Microsoft Git Sağlayıcısı

Her ikisini de denedim ve daha olgun olması için bir tane bulduk ve daha fazla özelliğe sahip. Örneğin, hem kaplumbağa git hem de git uzantılarıyla güzelce oynar ve hatta özelliklerini ortaya çıkarır.

Not : Hangi uzantıyı kullanırsanız kullanın, çalışması için uzantıyı etkinleştirdiğinizden emin olun Tools -> Options -> Source control -> Plugin Selection.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.