Вопрос

По разным причинам (в основном проверка кода) мне приходится довольно часто переключаться с текущей ветки разработки на другие ветки.

В настоящее время я использую либо «git stash», чтобы отложить незафиксированные изменения, проверить другую ветку, затем переключиться обратно и выполнить «git stash apply».

Однако иногда у меня там были новые добавленные файлы, которые не отслеживаются.К сожалению, кэширование на них не влияет.В этом случае мне придется добавить их в индекс и спрятать.

Здесь я ищу рабочий процесс, в котором мне придется выполнить минимальный набор действий для переключения ветвей, желательно избегать добавления файлов в индекс.

Это было полезно?

Решение

вы можете клонировать репо в другой каталог и по умолчанию использовать нужную ветку:

# assume your original repo is in myproj
$ git clone myproj myproj_clone --branch my_branch

Если вы затем пойдете в myproj_clone папка, она будет в вашей ветке

$ cd myproj_clone
$ git branch
* my_branch

Другие советы

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

Я не уверен, что клонирование - правильное решение, но поскольку в двух ответах предполагается, что это в мозгу, я предлагаю модификацию этой темы.клонирование может стоить недешево.С точки зрения дискового пространства это не имеет значения, но само клонирование занимает несколько секунд, а это слишком много времени, чтобы тратить его на ненужную операцию.В качестве альтернативы вы можете просто создать новый рабочий каталог, используя старый рабочий каталог git.то есть, если ваш текущий рабочий каталог — «a» (с изменениями и неиндексированными файлами), попробуйте:

$ mkdir ../b
$ cd ../b
$ echo 'gitdir: ../a/.git' > .git
$ git checkout -f foo

Теперь b фактически является клоном a в ветке foo, и у вас есть два рабочих каталога, с которыми можно поиграть.Сделайте то, что вам нужно, в ветке foo в рабочем каталоге b, затем вернитесь в a и проверьте ветку, в которой вы находились, когда уходили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top