Использование Git для написания диссертации [закрыто]
Я планирую использовать Git для написания моей диссертации с Latex. Поскольку Git специально разработан для разработки программного обеспечения, будет ли это возможно для моих требований? Если это хороший выбор для меня, то что особенные и уникальные функции доступны в Git, которые идеально подходят для написания диссертации. Также я хочу знать, какие меры предосторожности я должен принять, прежде чем попасть в рабочий поток Git. Я полный новичок для Git, так что должно быть моей отправной точкой, прежде чем я войду в нее.
5 ответов:
есть некоторые технические вопросы и рекомендации. Я иду на второй, специально для написания вашей диссертации и / или документов. Для технических из них вы можете проверить любой учебник git.
определить структуру каталогов для вашей диссертации. Вы можете изменить его позже, и использовать Git для отслеживания изменений. Имея хорошую структуру это облегчит тебе жизнь.
работа с несколькими файлами (используйте include и / или input in латекс.) Вы можете разделить их по главам или разделам. Это облегчит отслеживание изменений, связанных с конкретными частями вашей диссертации (например,
git log content/introduction.tex
).отслеживать только файлы, которые вы собираетесь прикоснуться, не автоматически. Создание правильным .gitignore файл поможет вам большое (LaTeX генерирует множество рабочих файлов).
как и в программах, делать микро-коммиты, то есть: один коммит на идея / функция / исправление / активность.
каждый раз, когда вы совершаете, пишите значимые сообщения (высокий уровень), которые объясняют, чего вы пытались достичь в каждом изменении. Через неделю вы можете не вспомнить, что вы пытались сделать.
отслеживание каждого действия / идеи / исправления [см. (4) и (5)] может быть очень полезно знать, сколько вы сделали (используя
git log
). Вы можете написать свой предварительный отчет для вашего руководителя(ов) на основеgit log
. Даже более того, вы можете поделиться репозитория с вашим начальником (через веб-интерфейс), и они могут проверить все, что вы делали в своей диссертации. Для следующей встречи они будут знать, чего ожидать (это будет зависеть от того, насколько любят ваши руководители следовать RSS).использование git будет полезно для поддержания вас в хорошем настроении (иногда вы чувствуете, что не сделали слишком много, но отслеживание каждого изменения поможет вам сохранить вещи перспектива.)
для каждого отчета о ходе работы, который вы отправляете, создайте тег. Для следующего отчета вы можете проверить как версию, так и применить latexdiff. Это будет полезно для отслеживания изменений между версиями вы отправляете на доработку. Это также поможет вам проверить, обращались ли вы к обратной связи, полученной для предыдущего отчета.
наконец, но не в последнюю очередь, я рекомендую вам прочитать "успешное ветвление Git модель". Это очень короткая статья о рабочем процессе git. Вы можете применять те же понятия, когда пишете диссертацию. Например, если вы пишете эксперимент, вы можете создать для него ветку и объединить ее, как только она будет "готов."Если вам придется вернуться к нему позже, было бы легче понять, какие изменения были связаны и почему.
когда я писал свою кандидатскую диссертацию, 1 я использовал git для управления документом и всеми его цифрами, и я очень рад, что сделал это, не в последнюю очередь потому, что это облегчает написание сценария, который графы progresss как вы идете вперед ;) главные преимущества, которые я нашел были:
- поскольку git является распределенной системой управления версиями, легко работать на нескольких машинах. Если вам нужна последняя версия с вашего ноутбука на вашем компьютере, вы можете просто
pull
непосредственно с ноутбука и работать там. Когда вы уходите, вы идете к своему ноутбуку и вытаскиваете из настольной машины.- если вы работаете на нескольких машинах, у вас фактически есть недавняя резервная копия вашей работы (включая ее полную историю), и если вы хотите создать дальнейшие резервные копии, вы можете просто нажать на новый голый репозиторий в другом месте (как VonC это указывает).
- вы можете внести большие изменения в ваш документ, зная, что предыдущий версия надежно хранится, и если вы хотите получить старую версию, это легко сделать.
- возможность фиксации в репозитории, когда вы находитесь в автономном режиме, очень полезна, особенно с не имея доступ в интернет, гораздо проще писать ;) я также сохранил PDF-файлы всех документов, которые я процитировал в том же репозитории, чтобы облегчить работу в автономном режиме, хотя это значительно раздуло репозиторий, поэтому некоторые могут посоветовать против что.
главный совет, который я дам:
- Commit часто, и всегда убедитесь, что вы держите выход
git status
пусто, либо добавляя нужные файлы, либо перечисляя их в.gitignore
. Вы не хотите рисковать тем, что важные файлы не будут отслежены.- никогда не используйте команды перезаписи истории (например
git rebase
), просто чтобы быть в безопасности и никогда не использовать опасные команды git, такие какgit reset --hard
иgit checkout -f
. Никто никогда не увидит ваш полный репозиторий, поэтому вам все равно, как выглядит история - гораздо важнее, чтобы вы не делали ничего, что может потерять (или затруднить извлечение) вашу работу.- когда вы смотрите на различия между версиями, используйте до
git diff
. В противном случае ваши различия будут строчными, и если вы переформатируете абзац в LaTeX, будет трудно увидеть, каковы реальные изменения -git diff --color-words
игнорирует разрывы строк и просто показывает старые слова красным цветом и новые слова зеленого цвета.1 ... с LyX а не непосредственно в LaTeX, но проблемы по существу те же.
- объединить рабочий процесс (который вам не нужно так много в вашем случае)
- рабочий процесс публикации (push to a remote repo)
С вашим местным .git repo, вы сможете сравнить с предыдущими версиями (что может пригодиться)
Но преимущество DVCS-это когда:
- вы сохраняете свою работу через толчок к удаленному РЕПО (или, для резервное копирование целей, пакет)
- вы синхронизируете свою работу между двумя разными ПК (например, в "как переместить локальный репозиторий git на другой компьютер?" или "git сервер между ноутбуком и ПК (MS Windows 7)").
Затем, как только синхронизация будет выполнена (черезgit push
), вы можете полностью отключить свою вторую среду и по-прежнему пользоваться полной историей своего РЕПО.
Вот где DVCS имеет значение в вашем случай.
в основном это просто комментарий, но он оказался слишком длинным, поэтому я публикую его в качестве ответа.
Я использовал darcs для своей магистерской диссертации и в прошлом использовал RCS, CVS и SVN для многих проектов документации / написания. Все эти инструменты предоставляют основную функцию, которую я хочу-возможность просматривать мои изменения, возвращаться в историю, проверять "точки отмены", когда я начинаю писать что-то новое.
есть старые и проверенные рекомендации для написание документации с контролем версий. Использование текстового формата важно для получения разумных различий. Кроме того, полезный совет, который я взял (IIRC от Kernighan, пишущий о сохранении источника Troff в управлении версиями), заключается в том, чтобы убедиться, что все строки достаточно короткие. Я склонен ударять ввод каждые несколько строк, с прицелом на сохранение одного конкретного предложения или идиомы на одной строке, так что разница будет минимальной, если я решу пересмотреть эту конкретную деталь позже.
Git будет работать. Latex-это эффективный исходный код, поэтому он должен быть совершенно прекрасным.
тем не менее, Git, в то время как awesome, имеет немного крутую кривую обучения,потому что она позволяет много вещей для сотрудничества с несколькими людьми, обработки расходящихся историй и т. д. Его действительно большое преимущество заключается в слиянии конфликтов ( что произойдет, если я изменю файл, а кто-то другой изменит файл, и мы оба попытаемся загрузить/зафиксировать его на каком-то сервере?).
Если вы просто хотите версия вашего тезиса, вы вряд ли даже попадете в конфликтный случай слияния (поскольку вы единственный, кто его редактирует), не говоря уже о нескольких историях.
Я бы использовал что-то более простое, например SVN, что, хотя и хуже для выполнения двух вещей, которые я описал, соответствует вашим потребностям и легче учиться.кроме того, git хранит все в a .файл Git в папку. Если вы удалите эту папку , ваши данные ушли.