Мне кажется, что live
должен быть веткой, а не тегом. На всякий случай, когда вы не знаете: в отличие от svn, который рассматривает ветку и теги подобно простой операции копирования дерева (с единственным отличием, которое вы используете при работе с ними), ветви и теги git просто указывают на определенные коммиты, основное отличие состоит в том, что активная ветвь следует за фиксацией, тогда как теги всегда остаются на фиксации, которую они создали против.
Каталог библиотеки не является веткой или тегом. Его можно было бы заменить git-подмодулями, но они сложны с небольшими искателями, чтобы работать, поэтому вы можете избавиться от них, пока не набросите свои навыки немного в общем потоке git. Не поймите меня неправильно; подмодули - это именно то, что нужно для управления зависимостями третьих сторон, но они привыкли к тому, что они будут казаться совершенно таинственными и сломанными, если у вас нет сильной интуиции относительно базовой модели git.
Говоря в более общих терминах, большая вещь, которую вы теряете при переходе от svn в git, - это удобство заранее установленного рабочего процесса. Git позволяет вам следить за общими рабочими процессами svn и многое, многое другое, но вы можете легко сделать яичницу из вашей истории, если не используете какие-либо ограничения на использование git. Вы можете найти очень эффективный рабочий процесс here. Это не единственный возможный рабочий процесс, и он может быть даже не лучшим для вашей ситуации, но он может служить отправной точкой, из которой вы создаете свой собственный рабочий процесс. Например, в нашем магазине, который также перешел из svn, мы придерживались большинства наших коммитов на master
, для которых они используют ветку develop
, и мы помещаем вещи на ветку release
вместо своих master
. Таким образом, наш рабочий процесс в основном такой же, как у них, но с другим выбором имен для долгоживущих ветвей.
Если что-то меняется по истории, то это не должно быть тегом. И библиотеки не должны находиться в их теге. Они должны быть либо частью нормальной структуры репозитория, либо в другом репозитории. Другими словами, у вас беспорядок на руках, и может быть нелегко преобразовать это в git способами, которые имели бы смысл. – svick
В svn эта структура папок работает для нашего стека развертывания и позволяет нам запускать разные версии на одной машине - я понимаю, что это не лучшая структура, но она хорошо работает для того, что нам нужно делать. –
@JakeStride проблема в том, что те вещи, которые вы называете тегами в svn *, не являются тегами * и не могут использоваться как теги в VCS, которые действительно знают, что такое теги. Это просто, что svn невежественен и позволяет вам называть любую старую вещь тегом. – hobbs