2012-07-04 4 views
5

На работе мы используем TFS, и я пытаюсь заставить инструмент Git-TFS работать, чтобы у меня было больше гибкости при работе с локальными коммитами, прежде чем нажимать их на наш TFS-репо.Git-Tfs: набор изменений TFS за Git Commit?

У меня это работает, но когда я делаю git tfs ct, он проверяет все мои фиксации на один набор изменений TFS. Я что-то упускаю, или так оно и должно работать? Если он не перетаскивает каждую из моих коммитов в TFS в виде отдельных наборов изменений, то это, по-видимому, преследует цель использования git-tfs в первую очередь.

ответ

9

Я использую команду rcheckin, которая фиксирует ваши новые таблицы изменений git по tfs по одному, перезаряжая оставшиеся фиксации после каждого фиксации tfs, чтобы получить нормальное дерево. Использование подкоманды checkintool создает mergecommit - я не помню, чтобы это раздавало git.

Таким образом, мы используем обычный рабочий процесс git: проверяем ветвь функции, работаем над ней, мастер проверки и «git tfs pull», при необходимости восстанавливаем ветвь функции против мастера, а затем объединяем функцию для управления и делаем git tfs rcheckin. Наконец, удалите ветвь функции. В редких случаях это не удалось (из-за заблокированного файла tfs), rcheckin остановился, оставив все в разумном состоянии, так что, как только препятствие было очищено, не было никаких проблем продолжать.

В целом, git-tfs делает использование TFS терпимым.

+0

Отлично! Это работает так, как я хотел. Интересно, почему страницы Github readme и wiki не упоминают эту команду. – Dan

+0

Единственное, что мне не нравится в 'rcheckin', из-за заблокированного файла, состоит в том, что ваши изменения _partially_ отправляются на сервер TFS. Поскольку я работаю с группой людей, которые являются Git shy и предпочитают TFS, я вынужден раздавить свои коммиты с помощью 'rebase -i', чтобы мой успех/неудача всегда были атомарными. –

Смежные вопросы