Как подключить существующий локальный репозиторий git к существующему удаленному репозиторию в Visual Studio 2013?

Я только что обновился до Visual Studio 2013 и хочу использовать встроенные функции git.

У меня есть локальный репозиторий git - с различными ветвями и историей - я активно работаю с удаленным репозиторием TFS git вместе с другими коллегами.

В VS2013 я могу видеть, что локальный репозиторий и ветки коммутатора, commit, push и т.д., но когда я подключаюсь к командному проекту, у него нет ветвей и нет подключения к локальному репозиторию.

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

Все это работает с приложением GitHub для Windows, но инструменты VS2013, похоже, не нравятся.

Любые идеи?

Ответы

Ответ 1

Я знаю, что это старый вопрос, но он появился в моем поиске Google...

Если ваш исходный код еще не находится в TFS, вам нужно клонировать ваш пустой проект TFS (используйте Visual Studio), затем вытащите код из другого репо и нажмите его в TFS (ответ Даниэля).

Если ваш исходный код уже находится в TFS, но Visual Studio не связывает ваш существующий локальный репозиторий git с проектом TFS...

В Visual Studio подключитесь к TFS (т.е. в окне Team Explorer подключитесь к проекту TFS. Вы должны иметь возможность просматривать рабочие элементы и т.д., но он будет говорить, что вам нужно клонировать проект локально. Теперь перейдите в меню "Файл" → "Открыть" - "Проект/Решение" и найдите и откройте файл решения в локальном репозитории git. Если все хорошо, Visual Studio будет поддерживать связь с вашим проектом TFS и решение будет открытым, и оно должно помнить об этом в будущем (поэтому он больше не должен говорить вам, что вы должны клонировать его).

Если, с другой стороны, Visual Studio отключила вас от проекта TFS, когда вы открыли решение (и если вы должны были повторно подключиться к TFS, он закрывает решение), это означает, что он не считает, что они одинаковы командный проект. Скорее всего, это связано с тем, что URL-адрес сервера не равен 100%. Два простых способа это может быть потому, что вы можете использовать разные имена хостов, или это может быть "http:" vs "https:".

Дважды проверьте это, выполнив git remote -v show в своем локальном репо и сравните URL-адрес с тем, что вы использовали в VS, когда вы подключились к TFS. Помимо имени домена, убедитесь, что оба они либо используют "http", либо оба являются "https" (я только что столкнулся с этой проблемой и понял, что использовал "https" внутри Visual Studio, но "http", когда я ранее клонировал репо в git). Если они разные, тогда исправьте их.

Чтобы обновить URL-адрес в локальном репозитории git:

git remote set-url REMOTE_NAME REMOTE_URL

(замените имя пульта дистанционного управления на REMOTE_NAME и URL для REMOTE_URL)

(или вы можете обманывать и открывать файл .git\config в текстовом редакторе и редактировать URL-адреса напрямую)

Повторно откройте решение в Visual Studio и убедитесь, что он поддерживает подключение к TFS. Как только Visual Studio увидит, что это один и тот же URL-адрес сервера, он должен помнить об этом, поэтому, когда вы подключаетесь к проекту TFS с помощью Team Explorer, он не должен говорить, что вам нужно сначала клонировать его, а ярлыки в файл решения должны появиться (хотя в VS 2015 я часто должен нажать кнопку обновления в верхней части Team Explorer, когда я переключаюсь между проектами до изменения ярлыков решений).

Ответ 2

У меня была такая же проблема с VS2015 и TFS2015, и мои URL-адреса были идентичными. Я исправил проблему, удалив ссылку на проект в списке локальных Git репозиториев. Делая это, в следующий раз, когда я выберу решение, VS2015 "подключится" автоматически к локальному репозиторию с Team Team Project TFS2015 вместо того, чтобы отключить меня от него и вернуть обратно в локальный репозиторий.

Надеюсь, это поможет кому-то еще.

Ответ 3

Вероятно, вам просто нужно добавить удаленный доступ к существующему репо и нажать содержимое своего локального репо на TFS.

Откройте командную строку Git и введите `git remote add". Вы можете вносить свои изменения в TFS.

Другим вариантом в VS было бы клонирование репозитория TFS в папку на вашем поле, затем откройте командную строку Git и введите git pull <local path of your existing repo>. Это должно занять все от вашего старого репо и позволить вам подтолкнуть его к TFS.