Использование Git для написания диссертации [закрыто]


Я планирую использовать Git для написания моей диссертации с Latex. Поскольку Git специально разработан для разработки программного обеспечения, будет ли это возможно для моих требований? Если это хороший выбор для меня, то что особенные и уникальные функции доступны в Git, которые идеально подходят для написания диссертации. Также я хочу знать, какие меры предосторожности я должен принять, прежде чем попасть в рабочий поток Git. Я полный новичок для Git, так что должно быть моей отправной точкой, прежде чем я войду в нее.

5 54

5 ответов:

есть некоторые технические вопросы и рекомендации. Я иду на второй, специально для написания вашей диссертации и / или документов. Для технических из них вы можете проверить любой учебник git.

  1. определить структуру каталогов для вашей диссертации. Вы можете изменить его позже, и использовать Git для отслеживания изменений. Имея хорошую структуру это облегчит тебе жизнь.

  2. работа с несколькими файлами (используйте include и / или input in латекс.) Вы можете разделить их по главам или разделам. Это облегчит отслеживание изменений, связанных с конкретными частями вашей диссертации (например,git log content/introduction.tex).

  3. отслеживать только файлы, которые вы собираетесь прикоснуться, не автоматически. Создание правильным .gitignore файл поможет вам большое (LaTeX генерирует множество рабочих файлов).

  4. как и в программах, делать микро-коммиты, то есть: один коммит на идея / функция / исправление / активность.

  5. каждый раз, когда вы совершаете, пишите значимые сообщения (высокий уровень), которые объясняют, чего вы пытались достичь в каждом изменении. Через неделю вы можете не вспомнить, что вы пытались сделать.

  6. отслеживание каждого действия / идеи / исправления [см. (4) и (5)] может быть очень полезно знать, сколько вы сделали (используя git log). Вы можете написать свой предварительный отчет для вашего руководителя(ов) на основе git log. Даже более того, вы можете поделиться репозитория с вашим начальником (через веб-интерфейс), и они могут проверить все, что вы делали в своей диссертации. Для следующей встречи они будут знать, чего ожидать (это будет зависеть от того, насколько любят ваши руководители следовать RSS).

  7. использование git будет полезно для поддержания вас в хорошем настроении (иногда вы чувствуете, что не сделали слишком много, но отслеживание каждого изменения поможет вам сохранить вещи перспектива.)

  8. для каждого отчета о ходе работы, который вы отправляете, создайте тег. Для следующего отчета вы можете проверить как версию, так и применить 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, но проблемы по существу те же.

на DVCS, a"процесс" означает:

  • объединить рабочий процесс (который вам не нужно так много в вашем случае)
  • рабочий процесс публикации (push to a remote repo)

С вашим местным .git repo, вы сможете сравнить с предыдущими версиями (что может пригодиться)
Но преимущество DVCS-это когда:

в основном это просто комментарий, но он оказался слишком длинным, поэтому я публикую его в качестве ответа.

Я использовал darcs для своей магистерской диссертации и в прошлом использовал RCS, CVS и SVN для многих проектов документации / написания. Все эти инструменты предоставляют основную функцию, которую я хочу-возможность просматривать мои изменения, возвращаться в историю, проверять "точки отмены", когда я начинаю писать что-то новое.

есть старые и проверенные рекомендации для написание документации с контролем версий. Использование текстового формата важно для получения разумных различий. Кроме того, полезный совет, который я взял (IIRC от Kernighan, пишущий о сохранении источника Troff в управлении версиями), заключается в том, чтобы убедиться, что все строки достаточно короткие. Я склонен ударять ввод каждые несколько строк, с прицелом на сохранение одного конкретного предложения или идиомы на одной строке, так что разница будет минимальной, если я решу пересмотреть эту конкретную деталь позже.

Git будет работать. Latex-это эффективный исходный код, поэтому он должен быть совершенно прекрасным.

тем не менее, Git, в то время как awesome, имеет немного крутую кривую обучения,потому что она позволяет много вещей для сотрудничества с несколькими людьми, обработки расходящихся историй и т. д. Его действительно большое преимущество заключается в слиянии конфликтов ( что произойдет, если я изменю файл, а кто-то другой изменит файл, и мы оба попытаемся загрузить/зафиксировать его на каком-то сервере?).

Если вы просто хотите версия вашего тезиса, вы вряд ли даже попадете в конфликтный случай слияния (поскольку вы единственный, кто его редактирует), не говоря уже о нескольких историях.
Я бы использовал что-то более простое, например SVN, что, хотя и хуже для выполнения двух вещей, которые я описал, соответствует вашим потребностям и легче учиться.

кроме того, git хранит все в a .файл Git в папку. Если вы удалите эту папку , ваши данные ушли.