Я работаю над большим проектом Scala, где мы используем Git для контроля версий. Мой рабочий процесс состоит в том, чтобы работать над новыми функциями в моей собственной ветке и переключаться при необходимости. Различные выпуски кода находятся в своих собственных ветках. Все очень стандартно.
Если мне нужно исправить ошибку в определенной версии кода, я переключусь на правильную ветку, исправлю ошибку, сделаю коммит и вернусь туда, где я был.
Проблема в том, что, хотя git мгновенно переключается на другую ветку, как только я там, я должен перекомпилировать код. Что занимает несколько минут. Затем исправьте ошибку, вернитесь к моей собственной ветке и выполните еще одну перекомпиляцию, что займет еще несколько минут. Кажется, это побеждает цель того, что Git так быстр.
Кто-нибудь еще сталкивался с этим? Есть ли способы обойти это? Я уверен, что это не специфическая проблема для Scala (хотя Scala очень медленно компилирует).
обновление 3+ года спустя
Я использую ответ @djs (git-new-workdir) последние несколько лет. Это сработало очень хорошо для меня. У меня есть главный каталог и несколько других каталогов (например, производство, следующий выпуск и т. Д.), На которые я переключаюсь, когда мне нужно там работать. Затраты очень малы, и это означает, что вы можете быстро переключиться, чтобы сказать, производство, что-то проверить, а затем вернуться к тому, над чем вы работали.
обновление 7+ лет спустя
Похоже, git-worktree - это замена для git-new-workdir. Использовать:
cd ~/git/my-repo
git worktree add ~/git/my-linked-repo