Каковы большие различия между TFS и Git для управления версиями при использовании Visual Studio 2013?

Есть много вопросов и ответов о Git по сравнению с TFVC Source Control, но нет текущих ответов, учитывая интеграцию Git в Team Foundation Server/Service, которую я могу найти.

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

Итак, чтобы помочь мне решить между этими двумя системами...

Каковы большие различия между TFS и Git для управления версиями при использовании Visual Studio 2013?

  • Единственное преимущество в моем случае - локальный репозиторий (не говоря о его незначительности) и поддержка разработки iOS?
  • Единственный недостаток Git интерфейса командной строки (некоторые утверждают, что это не недостаток; -P).
  • Прошли ли вы в графическом интерфейсе Visual Studio 2013 для Git? Достаточно ли этого для поддержки базового разветвления/слияния без интерфейса командной строки?
  • Есть ли подробное руководство по началу работы для Git, которое показывает, что Git используется с Visual Studio 2013? У Microsoft есть видео для интеграции существующего репозитория Git в Visual Studio 2013, но я ищу начало с нуля с помощью Git и VS 2013.

Я не ищу здесь книгу, а всего лишь несколько маркеров и, возможно, некоторые релевантные ссылки от людей, которые использовали как TFS, так и Git.

Ответ 1

Каковы большие различия между TFS и Git для контроля версий при использовании VS 2013?

MSDN имеет очень обширную страницу со всеми функциями и различиями между Team Foundation Version Control и Git.

Является ли единственным преимуществом в моем случае локальное хранилище (не говоря уже о том, что оно незначительное) и поддержка разработки IoS?

Нет, их намного больше, но они часто представляют собой продвинутый сценарий Git. Локальный репо, поддержка в автономном режиме и полная локальная достоверность истории невероятно эффективны, вы получаете это из коробки с 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 - это другое.

Для стандартных операций, регистрации, извлечения, слияния, ветвления (или push, pull, fetch, commit, merge) пользовательский интерфейс работает просто отлично.

Существует ли подробное руководство по запуску Git, в котором показано, как Git используется с VS 2013? У MS есть видео для интеграции существующего репозитория Git в VS 2013, но я с нуля начинаю с Git и VS 2013?

Начиная с Git доступен в нескольких местах... Это несколько вариантов:

Другие хорошие читает:

И несколько инструментов, которые стоит установить:

Ответ 2

Чтобы прояснить некоторую запутанную смешанную терминологию, которая часто используется с TFS

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

Компонент VCS, который использует TFS, - это прежде всего Team Foundation Version Control (TFVC)

Таким образом, вопрос будет TFVC против Git

(На самом деле, TFS поддерживает Git в качестве опции VCS.)

Итак, вопрос: TFVC против Git

У jessehouwing есть отличный ответ, который охватывает это в деталях, поэтому, пожалуйста,

Что касается выбора, который использовать, по моему мнению, Git выигрывает в каждом сценарии.

  1. Он легкий: простой в настройке и использовании.
  2. Распространенная природа означает, что она очень устойчива к стихийным бедствиям, у кого-то всегда будет копия репо.
  3. Автономная работа проста, вы работаете с собственным полным хранилищем. Вы можете зафиксировать изменения, отменить просмотр, просмотреть историю и т.д. Вам нужно быть в сети только тогда, когда вы хотите синхронизировать данные с удаленным репозиторием.
  4. Опции командной строки Git очень мощные, но также интуитивно понятные.
  5. В TFS нет простого способа сохранить состояние ваших изменений (добавления файлов, модификации, удаление файлов) и переключиться на другое состояние кода. (Например, для работы над двумя функциями и переключения вперед и назад). В git вы просто извлекаете другую ветку.

Ответ 3

Единственный недостаток Git интерфейса командной строки (некоторые утверждают, что это не недостаток; -P).

Если вам неудобно использовать интерфейс командной строки, для Git доступно несколько интерфейсов GUI. Git сам по себе содержит инструмент GUI для браузера репозитория, называемый gitk и git-gui - графический интерфейс для Git. Тогда есть сторонние приложения, такие как git-cola, TortoiseGit и другие.