2014-01-09 2 views
0

У меня есть репозиторий git, который я использовал для хранения всех .tex-файлов, цифр и кода, соответствующих исследовательской статье. На самом деле, у меня есть несколько статей, один репозиторий на статью. Теперь я работаю над своей диссертацией, которая имеет свой собственный репозиторий git, и некоторые из глав будут основаны на предыдущих исследованиях, то есть на содержании в репозиториях статей.Как сохранить два репозитория git, которые делят (большинство) файл?

Как скопировать соответствующие файлы из репозитория git статьи в репозиторий диссертаций, чтобы я мог синхронизировать выбранные транзакции между двумя репозиториями?

Например, я делаю фиксацию для диссертации, которая меняет несколько строк .tex-файла, чтобы результат соответствовал требуемому форматированию для моей диссертации. Эти изменения никогда не должны отражаться в репозитории статей. Тем не менее, я делаю вторую фиксацию, которая исправляет опечатку в другом разделе .tex-файла. Изменения со второго фиксатора, и только эти изменения должны быть синхронизированы с репозиторием статьи. Один из моих соавторов из статьи расширяет один из разделов в .tex-файле в репозитории статей. Я хочу вытащить эти изменения (но только изменения от этого коммита, а не переписывание других разделов) в репозиторий диссертаций.

Каков самый простой способ обновить один репозиторий с помощью выбора изменений из другого репозитория, учитывая, что некоторые разделы файлов между двумя хранилищами могут значительно расходиться?

ответ

0

Что вы ищете, скорее всего, являются подмодулями git: http://git-scm.com/book/en/Git-Tools-Submodules. это позволит вам использовать репо, привязанное к определенной версии файла.

поэтому в идеале у вас будет три репо: диссертация, статья и общие. то вы поделитесь с другими двумя репозиториями как подмодулем.

Редактировать: Теперь, когда я думаю об этом снова, я думаю, что вы можете решить эту проблему, просто поддерживая несколько ветвей. один для диссертации и один для статьи. файлы, которые вам нужно изменить: создать другую ветку, внести изменения. то только объедините его с веткой или ветками, к которым вы хотите объединить изменения. я думаю, что изучение потока рабочего потока git может помочь вам четко мыслить: http://nvie.com/posts/a-successful-git-branching-model/

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