2015-08-05 3 views
1

Я только что создал новый проект в VS2013 и добавил его в исходное управление, выбрав вариант Git. Это создало ожидаемую скрытую папку .git в корне решения, и в проекте теперь отображаются символы, указывающие, что они находятся под контролем источника.Как синхронизировать локальное репо с репо сервера в VS 2013?

Теперь я хочу подтолкнуть все новое решение к другому каталогу, который в конечном итоге станет общим репо. Я получил полезное сообщение в VS, сообщая мне, что для публикации моих последних коммитов для удаленного репо мне нужно было синхронизировать. Я выбрал это и получил сообщение о том, что «Visual Studio не может (пока) публиковать в не-голый репо».

Я уже внешне провел git init в целевом репо, который, как я думал, будет принят как пустой пустой репо VS, но, похоже, это не так. Это проблема на самом деле. Моя основная проблема заключается в том, что опция Sync теперь выделена серым цветом в VS, хотя она утверждала, что Sync завершилась с ошибкой. Ничто из того, что я, похоже, не вернуло.

Может ли кто-нибудь определить, что я делаю неправильно, и, надеюсь, скажите мне, как это исправить? Кроме того, если кто-нибудь знает о какой-либо хорошей документации, конкретно касающейся того, как работает Git из VS, я бы хотел услышать об этом.

ответ

1

Когда вы настраиваете удаленный репозиторий, вы должны создать его, используя флаг --bare.

git init --bare <directory> 

Atlassian has a small explanation here on the git init options, что было бы хорошо, чтобы читать, но я предположил бы, что Visual Studio видит только пульт в другой репозиторий и не понимает, как нажать на него, когда не создается, как голый.

Из статьи Atlassian:

Придумайте --bare как способ отметить хранилище как хранилище, отличие от среды разработки. Это означает, что для фактически все рабочие потоки Git, центральный репозиторий голый, а разработчики локальные хранилища не голые.

+0

Благодарим вас за это. Мне нужно удалить все это из исходного элемента управления, а затем начать снова, так как это единственный способ, который я нашел до сих пор, чтобы вернуть параметр greyed-out Sync. – Patrick

+1

@Patrick Если вы просто удаляете удаленную копию, воссоздаете голый репо, а затем повторите синхронизацию существующего локального репо, вы должны сохранить всю свою историю и ничего не потерять. –

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