Visual Studio 2013 kullanırken kaynak denetimi için TFVC (TFS Sürüm Kontrolü) ve Git arasındaki büyük farklar nelerdir?


101

Git ve TFVC Kaynak Kontrolü ile ilgili tonlarca soru ve cevap var, ancak mevcut cevaplardan hiçbiri Git'in bulabildiğim Team Foundation Server / Service'e entegrasyonunu kapsamıyor.

Visual Studio 2013 kullanarak çok çeşitli diller (C #, C ++, PHP, Javascript, MySSQL) kullanarak yeşil otlak geliştirmeye başlıyorum. Gelecekte bazı iOS geliştirmeleri olacak. Kaynak kontrolü için SVN, VSS ve TFVC'ye çok aşinayım. Ancak Git'i hiç kullanmadım. Süreç yönetimi / çevik geliştirme için TFS'yi tercih ediyorum ... Mükemmel değil, ancak Visual Studio'ya iyi entegre oluyor.

Yani, bu iki sistem arasında karar vermeme yardımcı olmak için ...

Visual Studio 2013 kullanırken kaynak denetimi için TFVC ile Git arasındaki büyük farklar nelerdir?

  • Benim durumumdaki tek fayda yerel bir depo (bunun önemsiz olduğunu söylemiyor) ve iOS geliştirme desteği mi?
  • Git'in tek dezavantajı komut satırı arayüzüdür (bazıları bunun bir dezavantaj olmadığını iddia edebilir; -P).
  • Git için Visual Studio 2013 GUI deneyiminiz var mı? Bu, komut satırı arayüzü olmadan temel dallanma / birleştirmeyi desteklemek için yeterli mi?
  • Git'in Visual Studio 2013 ile kullanıldığını gösteren ayrıntılı bir başlangıç ​​kılavuzu var mı? Microsoft'un mevcut bir Git deposunu Visual Studio 2013'e entegre etmek için bir videosu var, ancak Git ve VS 2013 ile sıfırdan bir başlangıç ​​arıyorum.

Burada bir kitap aramıyorum, sadece birkaç madde işareti ve belki hem TFVC hem de Git kullananlardan bazı ilgili bağlantılar.

Yanıtlar:


115

VS 2013 kullanırken kaynak kontrolü için TFS ve Git arasındaki büyük farklar nelerdir?

MSDN, Team Foundation Sürüm Denetimi ile Git arasındaki tüm özellikler ve farklılıklar hakkında çok kapsamlı bir sayfaya sahiptir .

Benim durumumdaki tek fayda yerel bir depo (bunun önemsiz olduğunu söylemiyor) ve IoS geliştirme desteği mi?

Hayır, çok daha fazlası var, ancak bunlar genellikle Git'in gelişmiş senaryolarıdır. Yerel Repo, çevrimdışı destek ve geçmişe tam yerel sadakat inanılmaz derecede güçlüdür, Visual Studio ile bunu kutudan çıkarırsınız. Harika olan birkaç özellik daha var! Bir depodan diğerine dallanma ve birleştirme yeteneği çok güçlüdür. Bunlar için Pro Git kitabına bakmanızı tavsiye ederim . TFS'de Git sadece başka bir git sunucusudur, standart Git'in sahip olduğu hemen hemen tüm özelliklere sahiptir.

Birleştirmeden önce geçmişi yeniden yazma yeteneği, birkaç küçük değişiklik kümesini kaldırmanıza veya birleştirmenize olanak tanır, böylece geçmiş daha temiz ve insan olarak okunması daha kolay olur.

Git'in tek dezavantajı komut satırı arayüzüdür (bazıları bunun bir dezavantaj olmadığını iddia edebilir; -P).

TFVC'nin de bir komut satırı var, insanlar onu kullanmıyor. Git'i kullanmak isteyen ve asla TFVC'nin yaptığından fazlasını yapmayan insanlar için, muhtemelen UI'den ayrılmaları gerekmeyecek, yine de pek çok harika özelliği almayacaklar ...

Çoğunlukla insanların alışkın olduklarından farklı olması nedeniyle birkaç başka dezavantaj olabilir. Git'in bir şeyler yaptığında ne yaptığını öğrenmek için zaman ayırmazsan kendini ayağından vurmak çok zor değil. Rebase ve Squash gibi şeyler gerçekten güçlüdür ve çok temiz bir geçmiş oluşturur, ancak insanları yanlış kullanıldığında artık birleşemeyecekleri bir sorunla karşı karşıya bırakabilir. TFS, bir git deposunda çok aptalca kararlar alma haklarını elinden almak için bazı güvenlik ayarları koyma yeteneğine sahiptir .

Windows'ta Git kullanıcıları için çok güzel bir eklenti PoSHGit'tir . Powershell komut satırında otomatik komut tamamlama sağlar.

Git için VS 2013 GUI'de deneyimlediniz mi? Bu, komut satırı arayüzü olmadan temel dallanma / birleştirmeyi desteklemek için yeterli mi?

Temel işlemler için ihtiyacınız olan her şeye sahiptir. Ancak neler olup bittiğini anlamak için farklı dalları görselleştirebilmeniz gerekir. Git sunucusu ve yerel depo sadece Git olduğundan, herhangi bir git istemcisi size burada yardımcı olabilir. SourceTree burada bir seçenektir. Windows için Git istemcisi başka bir şeydir.

Standart işlemler, iade etme, teslim alma, birleştirme, dallanma (veya itme, çekme, getirme, işleme, birleştirme) için kullanıcı arayüzü gayet iyi çalışıyor.

Git'in VS 2013 ile kullanıldığını gösteren ayrıntılı bir başlangıç ​​kılavuzu var mı? MS'in mevcut bir Git deposunu VS 2013'e entegre etmek için bir videosu var, ancak Git ve VS 2013 ile sıfırdan bir başlangıç ​​mı arıyorsunuz?

Git ile başlamak pek çok yerde mevcuttur ... Bunlar birkaç seçenektir:

Diğer iyi okumalar:

Ve yüklemeye değer birkaç araç:


3
ALM Rangers, yakında TFVC kullanıcıları için Git kılavuzlarını burada yayınlayacak : vsarbranchingguide.codeplex.com/releases . Mevcut Beta sürümünde henüz yok, bir sonraki grupta düşeceğini umuyorum :).
jessehouwing

8
Orijinal gönderimden bu yana neredeyse bir yıl geçtikten sonra, VS2013'ü Git ile başarılı bir şekilde kullandığımızı hepinize bildireceğimi düşündüm. Tek bir Ekip Projesi altında birden fazla depo oluşturma yeteneğini sevin. Birleştirme konusunda birkaç sorunumuz oldu. Bazı durumlarda, otomatik birleştirme yanlış seçim yapar. Yani başarılı bir birleştirme gibi görünen şey aslında değil. Şimdi birleştirilmiş tüm dosyaları iki kez kontrol ediyoruz. Ayrıca, birleştirmenin VS kullanıcı arayüzünde boğulduğu ve bir hata oluşturduğu belirli durumlar vardır (libgit2 birleştirme çakışması). Düzeltmek için cmd komut istemine gidip bir git çekme (eğlenceli değil) vermeliyiz.
Greg Grater

1
Güncellemenin bir parçası olarak bu son hata için bir düzeltme geldiğini biliyorum. Ve bu sorunların ortaya çıkmasına neden olabilecek, geliştiriciler arasında son hat ayarlarının farklılık gösterdiği durumlar vardı.
jessehouwing

5
Aylar önce düştüğünden beri VS 2013 w / Update 4 kullanıyoruz ve tüm Git sorunlarımızı GUI'den düzeltti gibi görünüyor. Yerel depolarımızı güncel tutmaya yardımcı olan uzak sunucudan düzenli olarak veri çekme alışkanlığındayız. Ayrıca MS, Ürün İstek Listesi / Görev panolarında son zamanlarda birkaç olumlu güncellemeden geçiyor. Doğrudan panodan, artık açıklamayı düzenleyebilir, atayabilir, durumu ayarlayabilir ve öğenin önceliğini / sırasını ayarlayabilirsiniz.
Greg Grater

1
"Git vs TFVC" bağlantıları "Git'i kullanmaya başlayın" bağlantısına bağlıdır. Artık Git'i TFVC yerine daha iyi kullanmamız gerektiği anlamına mı geliyor? ; D yeni bir bağlantı buldu: visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc
Martin Schneider

17

TFS ile çok kullanılan bazı kafa karıştırıcı karma terminolojiyi temizlemek için

Team Foundation Server (TFS) , bir kaynak sürüm kontrol sistemi (VCS) içeren bir uygulama yaşam döngüsü yönetim aracıdır bileşeni .

VCS bileşeninin TFS kullanır öncelikle Takım Hazırlık versiyon kontrol (TFVC)

Yani, soru TFVC ile Git olacaktır.

(Aslında, TFS , Git'i bir VCS seçeneği olarak destekler .)

Yani soru şu: TFVC - Git

jessehouwing'in bunu ayrıntılı olarak ele alan harika bir cevabı var, bu nedenle lütfen şuna bakın:

Hangisinin kullanılacağını seçme konusunda, bence Git kazanır

  1. Hafiftir: Kurulumu ve kullanmaya başlaması kolaydır.
  2. Dağıtılmış doğası, felaketlere karşı çok dayanıklı olduğu anlamına gelir, birileri her zaman deponun bir kopyasına sahip olacaktır.
  3. Çevrimdışı çalışma basittir, kendi tam deponuzla çalışıyorsunuz. Değişiklikleri gerçekleştirebilir, geri döndürebilir, geçmişe göz atabilirsiniz, vb. Yalnızca uzak bir havuzla eşitlemek istediğinizde çevrimiçi olmanız gerekir.
  4. TFS'de, değişikliklerinizin durumunu (dosya eklemeleri, değişiklikleri, dosya silme işlemleri) kaydetmenin ve başka bir kod durumuna geçmenin basit bir yolu yoktur. (Örneğin, iki özellik üzerinde çalışmak ve ileri geri geçiş yapmak için). Git'te, farklı bir şubeyi kontrol etmeniz yeterlidir.

1
TFS'nin dalları ve raf setleri vardır (bu da # 5'e izin verir) ve gerçekten isterseniz projelerinizi git kullanacak şekilde bile yapılandırabilirsiniz. TFS VCS'de ayrıca # için bir komut satırı vardır. Hafif değildir, ancak tam bir proje yönetimi / hata izleme / iş izleme / yayınlama yönetimi / yapı yönetimi / iade politikası / yerleşik testlere sahip olduğu için git'ten çok daha fazlasını yapar.
Matthew Whited

@MatthewWhited Elbette mümkün, ancak git'in grafik tabanlı uygulamasına karşı dizin tabanlı uygulaması nedeniyle git'e kıyasla son derece külfetli. Bunu simpleyapmanın bir yolu olmadığını belirttiğime dikkat edin.
James Wierzba

@MatthewWhited Ayrıca, ekstra uygulama yaşam döngüsü araçlarına katılıyorum, ancak cevabımı yalnızca kaynak kodu sürümü kontrol çözümlerine göre inceliyorum.
James Wierzba

1
IDK ... TFS'nin kullanımını oldukça basit buluyorum. Yine de GIT tarafından oluşturulan tüm şubelerden hoşlanmıyorum, çünkü herkesin aynı koddan biri için hızlı karmaşa ile bazıları için yavaş, diğerleri için yavaş olmasını sağlamayı daha karmaşık hale getiriyor.
Matthew Whited

Bilmiyorum. GIT, başarmayı amaçladığı görev için çok karmaşık ve sezgisel değil (neden bu bir itme isteği değil de bir itme isteği?!). TF kaynak kontrolü çok basittir ve ekibimdeki herhangi bir yeni geliştiriciye dakikalar içinde açıklanabilir. Ekip içinde ve hatta bireysel olarak yerel olarak çalışmayı cesaretlendirmeyi büyük bir dezavantaj olarak görüyorum. Projeyi dallarla doldurmadan Git'teki çalışmanızı kaybetmeyi nasıl engellersiniz? (Bunun için TFS'de raflar var - SUNUCU ÜZERİNDE)
Cesar

4

Git'in tek dezavantajı komut satırı arayüzüdür (bazıları bunun bir dezavantaj olmadığını iddia edebilir; -P).

Komut satırı arayüzünden rahatsızsanız, Git için kullanılabilen birden fazla GUI ön ucu vardır. Git'in kendisi aslında gitkve git-gui- git için bir GUI adlı depo tarayıcı GUI aracını içerir . Sonra git-cola , TortoiseGit ve diğerleri gibi üçüncü taraf uygulamaları var .


2
Elbette Visual Studio'nun kendisi Git için bir GUI sağlar. Ancak, her zaman başka türlü imkansız olan şeyleri yapmak için komuta hattına dalmak isteyebileceğiniz zamanlar vardır. Tüm Git komutlarını ortaya çıkaran bir GUI, komut satırı kadar zordur.
jessehouwing

Komut satırı güç araçları var. Örneğin bir dalı tamamen ortadan kaldırmak için.
Engineer
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.