ความแตกต่างที่สำคัญระหว่างทั้งสองระบบคือ TFS เป็นระบบควบคุมเวอร์ชันรวมศูนย์และ Git เป็นระบบควบคุมเวอร์ชันกระจาย
ด้วย TFS ที่เก็บข้อมูลจะถูกเก็บไว้บนเซิร์ฟเวอร์ส่วนกลางและผู้พัฒนาตรวจสอบสำเนาการทำงานซึ่งเป็นภาพรวมของรหัส ณ เวลาใดเวลาหนึ่ง ด้วย Git นักพัฒนาจะโคลนที่เก็บทั้งหมดกับเครื่องรวมถึงประวัติทั้งหมด
ข้อดีอย่างหนึ่งของการมีพื้นที่เก็บข้อมูลเต็มรูปแบบในเครื่องของนักพัฒนาของคุณคือความซ้ำซ้อนในกรณีที่เซิร์ฟเวอร์เสียชีวิต สิ่งที่ดีอีกอย่างคือคุณสามารถย้ายสำเนาการทำงานไปมาระหว่างการแก้ไขโดยไม่ต้องพูดคุยกับเซิร์ฟเวอร์ซึ่งจะมีประโยชน์หากเซิร์ฟเวอร์หยุดทำงานหรือไม่สามารถเข้าถึงได้
ให้ฉันประโยชน์จริงคือการที่คุณสามารถกระทำการแก้ไขพื้นที่เก็บข้อมูลในพื้นที่ของคุณโดยที่ไม่เคยพูดคุยกับเซิร์ฟเวอร์หรือก่อให้เกิดการเปลี่ยนแปลงที่ไม่แน่นอนที่อาจเกิดขึ้นในทีมของคุณ (เช่นทำลายการสร้าง)
ตัวอย่างเช่นถ้าฉันกำลังทำงานกับคุณสมบัติที่ยิ่งใหญ่มันอาจใช้เวลาหนึ่งสัปดาห์ในการเขียนโค้ดและทดสอบอย่างสมบูรณ์ ฉันไม่ต้องการเช็คอินโค้ดที่ไม่เสถียรในช่วงกลางสัปดาห์และหยุดการสร้าง แต่จะเกิดอะไรขึ้นถ้าฉันใกล้จะถึงจุดสิ้นสุดของสัปดาห์และฉันตั้งใจจะลอกสำเนาการทำงานทั้งหมดของฉันโดยไม่ตั้งใจ? ถ้าฉันไม่ได้ทำมาตลอดฉันจะเสี่ยงต่อการสูญเสียงานของฉัน นั่นไม่ใช่การควบคุมเวอร์ชันที่มีประสิทธิภาพและ TFS นั้นอ่อนไหวต่อเรื่องนี้
ด้วย DVCS ผมสามารถกระทำอย่างต่อเนื่องโดยไม่ต้องกังวลเกี่ยวกับการทำลายการสร้างเพราะฉัน committing การเปลี่ยนแปลงของฉันในประเทศ ใน TFS และระบบรวมศูนย์อื่น ๆ ไม่มีแนวคิดของการเช็คอินท้องถิ่น
ฉันยังไม่ได้ไปถึงการแยกและการรวมที่ดีขึ้นใน DVCS แต่คุณสามารถค้นหาคำอธิบายมากมายที่นี่ใน SO หรือผ่านทาง Google ฉันสามารถบอกคุณได้จากประสบการณ์ว่าการแยกและรวมใน TFS นั้นไม่ดี
หากอาร์กิวเมนต์สำหรับ TFS ในองค์กรของคุณทำงานได้ดีบน Windows มากกว่า Git ฉันขอแนะนำ Mercurial ซึ่งใช้งานได้ดีบน Windows - มีการทำงานร่วมกับ Windows Explorer (TortoiseHg) และ Visual Studio (VisualHg)