Git Subtree. Почему я не могу переходить из поддерева, а не из корня? - PullRequest
2 голосов
/ 11 октября 2009

Я изо всех сил пытаюсь найти смысл в использовании стратегии поддерева Git. Моим намерением было собрать несколько разрозненных репо в маленькое семейство репозиториев под зонтичным репо. Я использую стратегию поддерева, детализированную здесь: http://help.github.com/subtree-merge

Я вырываю свои волосы, пытаясь убедить Git, что я хочу создать ветку из одного из этих поддеревьев НЕ из корня. Когда я перехожу в поддерево, создаю ветвь, а затем возвращаюсь к корню, запуск ветки git из корня ясно указывает на то, что ветка была создана в корне. Вздох.

Я люблю git / github, но сводит с ума то, что эта, казалось бы, рутинная задача работает правильно.

Может ли кто-нибудь, пожалуйста, просветить меня?

Ответы [ 2 ]

5 голосов
/ 11 октября 2009

git работает только на уровне «целого» дерева, поэтому, где бы вы ни работали в своем рабочем дереве, такие как branch, checkout <branch>, commit, все работают на корневом уровне.

Стратегия слияния поддерева - это стратегия слияния, которая помогает, когда у вас есть хранилище, в котором одна ветвь перемещает поддерево файлов в другое место в хранилище, а другая сторона вносит изменения в эти файлы в исходных местоположениях. Он предназначен для того, чтобы помочь объединить эти две операции таким образом, чтобы обычная стратегия объединения вызвала больше конфликтов или оставила файлы в неправильном месте.

Стратегия слияния поддеревьев не имеет отношения к тому, как работает git-операция «все дерево», поэтому, если вы хотите создать ветку, которая является всего лишь одним поддеревом хранилища, вам нужно выполнить ветвление, а затем выполнить новый коммит с помощью другие поддеревья удалены, а дерево интереса перемещено на корневой уровень.

Однако, учитывая ваш шаблон использования, я бы порекомендовал вам долго читать субмодули. Он может обеспечить функциональность, которая соответствует вашим ожиданиям.

3 голосов
/ 20 апреля 2010

Я рекомендую git-поддерево apenwarr: http://github.com/apenwarr/git-subtree. Надеюсь, в какой-то момент оно будет добавлено к самому git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...