Які великі відмінності між TFVC (TFS Version Control) та Git для управління джерелом при використанні Visual Studio 2013?


101

Є багато питань і відповідей щодо Git проти TFVC Source Control, але жодні поточні відповіді не охоплюють інтеграцію Git в сервер / сервіс Team Foundation, які я можу знайти.

Я починаю розробку зелених пасовищ, використовуючи широкий спектр мов (C #, C ++, PHP, Javascript, MySSQL) за допомогою Visual Studio 2013. В майбутньому буде розробка iOS. Я дуже знайомий з SVN, VSS та TFVC для контролю джерел. Однак я ніколи не користувався Git. Я віддаю перевагу TFS для управління процесами / спритний розвиток ... Це не ідеально, але він добре інтегрується в Visual Studio.

Отже, щоб допомогти мені вирішити між цими двома системами ...

Які великі відмінності між TFVC та Git для контролю джерела при використанні Visual Studio 2013?

  • Єдина користь у моєму випадку - локальний репозиторій (не кажучи про те, що він незначний) та підтримка розробки iOS?
  • Є єдиним недоліком Git інтерфейсу командного рядка (дехто може стверджувати, що це не є недоліком ;-P).
  • Чи мали ви досвід роботи в графічному інтерфейсі Visual Studio 2013 для Git? Чи достатньо цього для підтримки базового розгалуження / злиття без інтерфейсу командного рядка?
  • Чи є докладний посібник із запуску для Git, який показує, як Git використовується з Visual Studio 2013? Microsoft має відео для інтеграції існуючого репозиторію Git у Visual Studio 2013, але я шукаю початок з нуля з Git та VS 2013.

Я не шукаю тут книги, а лише кілька пунктів кулі і, можливо, деякі відповідні посилання від людей, які використовували і TFVC, і Git.

Відповіді:


115

Які великі відмінності між TFS та Git для контролю джерела при використанні VS 2013?

MSDN має дуже обширну сторінку про всі функції та відмінності між Team Foundation Version Version та Git .

Чи єдина користь у моєму випадку локальним сховищем (не кажучи про те, що це незначно) та підтримкою розробки IoS?

Ні, є набагато більше, але вони часто є вдосконаленим сценарієм роботи Git. Місцеве Repo, підтримка в режимі офлайн та повна локальна вірність історії неймовірно потужні, ви отримуєте це з коробки з Visual Studio. Є кілька інших особливостей, які теж чудово! Можливість розгалуження та об'єднання з одного сховища в інше дуже потужна. Я рекомендую вам знайти книгу Pro Git . Git в TFS - це ще один сервер git, він має майже всі функції, які має стандартний Git.

Можливість переписати історію перед об'єднанням дозволяє видалити або комбінувати ряд менших наборів змін, щоб історія була чистішою та легшою для читання як людиною.

Є єдиним недоліком Git інтерфейсу командного рядка (дехто може стверджувати, що це не є недоліком ;-P).

У TFVC є і командний рядок, люди просто не користуються ним. Для людей, які хочуть використовувати Git і ніколи не робити набагато більше, ніж TFVC, їм, ймовірно, не потрібно буде залишати інтерфейс, вони не отримають багато цікавих функцій, хоча ...

Можливо, є кілька інших недоліків, в основному через те, що він відрізняється від того, до чого звикли люди. Стріляти собі в ногу не надто важко, якщо ви не знайдете часу, щоб навчитися робити те, що робить, коли ви робите щось. Такі речі, як Rebase і Squash, справді потужні і створюють дуже чисту історію, але це може залишити людей проблемою, що вони не можуть злитися більше, якщо невірно використовуються. TFS має можливість встановити деякі параметри безпеки, щоб забрати права приймати дуже нерозумні рішення щодо сховища git .

Дуже класна добавка для користувачів Git в Windows - це PoSHGit . він забезпечує автоматичне завершення команд у командному рядку Powershell.

Чи стикалися ви з графічним інтерфейсом VS 2013 для Git? Чи достатньо цього для підтримки базового розгалуження / злиття без інтерфейсу командного рядка?

У ньому є все необхідне для основних операцій. Але вам потрібно вміти візуалізувати різні гілки, щоб знати, що відбувається. Оскільки сервер Git та локальна репо - просто Git, тут може допомогти будь-який клієнт git. Тут є варіант SourceTree. Клієнт Git для Windows - ще один.

Для стандартних операцій, реєстрації, виїзду, злиття, розгалуження (або натискання, витягування, отримання, злиття, злиття) інтерфейс користувача працює чудово.

Чи є докладний посібник із запуску для Git, який показує, що Git використовується з VS 2013? У MS є відео для інтеграції існуючого репортажу Git у VS 2013, але я шукаю початок з нуля з Git та VS 2013?

Починати з Git можна в багатьох місцях ... Це кілька варіантів:

Інші хороші читає:

І кілька інструментів, які варто встановити:


3
ALM Rangers незабаром випустить свої інструкції Git для користувачів TFVC тут: vsarbranchingguide.codeplex.com/releases . У поточному випуску бета-версії його ще немає, сподіваюся, він знизиться з наступною партією :).
jessehouwing

8
Через майже рік з мого початкового посту я подумав, що дам вам усім знати, що ми використовуємо VS2013 з Git успішно. Любіть можливість створення декількох сховищ під одним командним проектом. У нас було кілька проблем з об'єднанням. У кількох випадках автоматичне злиття вибирається неправильно. Тож те, що схоже на успішне злиття, насправді не є. Тепер ми двічі перевіряємо всі об’єднані файли. Крім того, є певні випадки, коли злиття задавлюється і видає помилку в інтерфейсі VS (конфлікт злиття libgit2). Щоб виправити, нам доведеться перейти до підказки cmd і випустити git pull (не весело).
Грег Гратер

1
Я знаю, що виправлено цю останню помилку як частина оновлення 4. І були випадки, коли налаштування кінцевої лінії відрізнялися між розробниками, які можуть спричинити виникнення цих проблем.
jessehouwing

5
Ми використовуємо VS 2013 w / Update 4, оскільки вона випала місяці тому, і, здається, виправлені всі наші проблеми Git із графічного інтерфейсу. Ми звикли регулярно витягувати з віддаленого сервера, що допомагає постійно підтримувати наші локальні сховища. Крім того, MS пізніше переглядає декілька позитивних оновлень на дошках продуктових блоків / завдань. Безпосередньо з дошки тепер ви можете редагувати опис, призначати, встановлювати стан та коригувати пріоритет / порядок елемента.
Грег Гратер

1
Посилання "Git vs TFVC" посилаються на "Почніть використовувати Git". Чи означає це тепер, що нам краще використовувати Git через TFVC? ; D знайшов нове посилання: visualstudio.com/en-us/docs/tfvc/comppare-git-tfvc
Мартін Шнайдер

17

Щоб очистити деяку заплутану змішану термінологію, яка багато використовується з TFS

Team Foundation Server (TFS) - це інструмент управління життєвим циклом додатків, який включає компонент системи управління версіями джерел (VCS) .

Компонент VCS, який використовує TFS, - це головним чином командний контроль версій команди (TFVC)

Отже, питання буде в TFVC проти Git

(Фактично, TFS підтримує Git як варіант VCS .)

Отже, питання: TFVC vs Git

jessehouwing має чудову відповідь, яка детально висвітлює це питання, тому, будь ласка, посилайтесь на це

Що стосується вибору, який використовувати, на мою думку, Git виграє

  1. Він легкий: простий у налаштуванні та початку використання.
  2. Поширений характер означає, що він дуже стійкий до катастроф, у когось завжди буде копія репо.
  3. Робота в режимі офлайн проста, ви працюєте зі своїм власним повним сховищем. Ви можете вносити зміни, повертати, переглядати історію тощо. Ви повинні бути в Інтернеті лише тоді, коли хочете синхронізуватися з віддаленим сховищем.
  4. У TFS не існує простого способу збереження стану змін (доповнення файлів, модифікацій, видалення файлів) та переходу до іншого стану коду. (Наприклад, для роботи над двома функціями та перемикання вперед і назад). У git ви просто замовляєте іншу гілку.

1
TFS має набори філій та полиць (що дозволяє №5), і ви навіть можете налаштувати свої проекти на використання git, якщо дуже хочете. TFS VCS також має командний рядок для #. Це не мало ваги, але це робить пекло набагато більше, ніж git, тому що він має повне управління проектами / відслідковування помилок / відстеження роботи / управління
випусками

@MatthewWhited Впевнений, що це можливо, але він надзвичайно громіздкий порівняно з git, завдяки його реалізації, що базується на каталогах, порівняно з графічною реалізацією git. Зауважте, що я заявив, що цього немає simple.
Джеймс Wierzba

@MatthewWhited Крім того, я погоджуюся на додаткові інструменти життєвого циклу додатків, але я готую свою відповідь лише на рішення, що контролюють версію вихідного коду.
James Wierzba

1
IDK ... Я вважаю TFS досить простим у використанні. Хоча мені також не подобаються всі гілки, створені GIT, оскільки це ускладнює те, щоб усі були одним і тим же кодом з швидким збиттям для одних, а для інших повільними.
Метью Віт

Не знаю. GIT просто надто складна для завдання, яке вона спрямована на виконання, і дуже не інтуїтивно зрозуміла (чому це тягнути запит, а не push-запит ?!). Контроль джерела TF дуже простий і його можна пояснити будь-якому новому розробнику в моїй команді за лічені хвилини. Я також вважаю, що заохочення до роботи на місцях є великим недоліком всередині команди та навіть окремо. Як ви запобігаєте втраті роботи в Git, не засмічуючи проект гілками? (Для цього є полки в TFS - НА СЕРВЕРІ)
Сезар

4

Є єдиним недоліком Git інтерфейсу командного рядка (дехто може стверджувати, що це не є недоліком ;-P).

Якщо вам не комфортно з інтерфейсом командного рядка, для Git доступні кілька фронтальних інтерфейсів GUI. Сам Git фактично містить сховище інструменту GUI браузера під назвою gitkі git-gui- графічний інтерфейс для мерзотника. Потім є сторонні додатки, такі як git-cola , TortoiseGit та інші .


2
Звичайно, Visual Studio сама пропонує графічний інтерфейс для Git. Але завжди є час, коли вам захочеться зануритися в командний рядок, щоб зробити речі, які інакше неможливо. GUI, який розкриває всі команди Git, такий же складний, як і командний рядок.
jessehouwing

Є електроінструменти командного рядка. Наприклад, повністю усунути гілку від існування.
інженер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.