Помогая другу с проблемой git сегодня, я должен был представить
которая должна быть полностью отделена от ветки master
.
Содержимое этой ветки действительно имело другое происхождение от того, что
были разработаны на ветке master
, но они собирались
слияние в ветвь master
в более позднее время.
Я вспомнил, прочитав Джона Вигли Git снизу вверх ветки по существу являются меткой фиксации, которая следует за определенным и как фиксация привязывается к дереву файлов и, необязательно, до материнской команды. Мы пошли на создание существующий репозиторий с помощью git сантехники:
Итак, мы избавились от всех файлов в индексе...
$ git rm -rf .
... извлеченные каталоги и файлы из tarball, добавили их в индекс...
$ git add .
... и создал объект дерева...
$ git write-tree
(git-write-tree
сказал нам sha1sum созданного древовидного объекта.)
Затем мы передали дерево, не указав родительские коммиты...
$ echo "Imported project foo" | git commit-tree $TREE
(git-commit-tree
рассказал нам sha1sum созданного объекта commit.)
... и создал новую ветку, которая указывает на наш недавно созданный совершить.
$ git update-ref refs/heads/other-branch $COMMIT
Наконец, мы вернулись в ветвь master
, чтобы продолжить работу там.
$ git checkout -f master
Кажется, что это сработало так, как планировалось. Но это явно не тот вид процедуры, которую я бы рекомендовал тому, кто только начинает используя git, мягко говоря. Есть ли более простой способ создания новая отрасль, которая полностью не связана со всем, что произошло в хранилище до сих пор?