Я не уверен, что клонирование - правильное решение, но так как 2 ответа предполагают, что это на уме, поэтому я предлагаю модификацию на эту тему. клонирование не может быть дешевым. С точки зрения дискового пространства это не имеет значения, но сам клон занимает несколько секунд, и это слишком много времени, чтобы тратить на ненужную операцию. В качестве альтернативы, вы можете просто создать новый рабочий каталог, используя старый рабочий каталог git. т. е. если текущим рабочим каталогом является "a" (с изменениями и не помеченными файлами), попробуйте:
$ mkdir ../b
$ cd ../b
$ echo 'gitdir: ../a/.git' > .git
$ git checkout -f foo
Теперь b фактически является клоном a в ветке foo, и у вас есть две рабочие директории, с которыми можно поиграть. Сделайте то, что вам нужно, на ветке foo в рабочем каталоге b, затем вернитесь к a и извлеките ветку, в которой вы были, когда уходили.