У меня есть несколько активных ответвлений, что я должен продолжить работать одновременно. Очевидно я могу создать два рабочих каталога с отличным ответвлением на каталог. Это - единственный способ сделать это, не имея необходимость "фиксировать" и "контроль" для переключения от одного ответвления до другого?
Да, хотя вы можете использовать git stash
вместо commit
, если вы не готовы завершить текущую работу.
Если вы временно переключаете ветки, git stash
полезен, однако помните, что фиксации не обязательно должны сохраняться вечно; вы можете сделать временные коммиты, чтобы откатиться позже.
Поэтому я рекомендую, если это многочасовое переключение, вместо этого выполнить git commit
, потому что, в зависимости от вашей памяти, тайники можно легко забыть / потерять и т. Д.
[In MyBranch]
>$ git commit -m "WIP: Stuff I was working on."
>$ git checkout AnotherBranch
[Do Stuff]
>$ git checkout MyBranch
>$ git reset HEAD^
[Continue]
И поскольку это вопрос о передовых методах, не забудьте дать своему тайнику полезное сообщение , используя git stash save
, иначе его будет сложно найти позже.
git clone
через локальный протокол является хорошей альтернативой для одновременной работы с несколькими ветвями.
Я обычно клонирую одно локальное голое репо в несколько копий (по одной для каждой активной ветки) и использую это голое репо в качестве репозитория центральной интеграции (так как я могу легко перейти на голое репо, вместо того, чтобы нажимать на другое репо). -голое репо).
Если вы делаете то, что называется разработкой ветвей на каждую функцию, как описано здесь:
http://martinfowler.com/bliki/FeatureBranch.html
вы можете также убедиться, что вы переключили схемы базы данных. Git может помочь в этом с помощью размазывания и очистки. Тогда возможно локальное управление несколькими базами данных. Когда вы проверяете новую ветку, вы размазываете строку подключения, чтобы аннотировать имя базы данных с именем ветки. Если файл конфигурации будет зафиксирован в какой-либо момент, он будет очищен путем удаления имени ветви из соединения.
Дополнительные сведения см. В книге Pro Git .