Как сохранить sh полное состояние рабочего дерева, включая проигнорированные, неотслеживаемые, промежуточные и / или неподготовленные файлы? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть клиент с кучей беспорядочных вещей, которые я хочу отключить sh, чтобы у меня было нетронутое состояние, но я мог вернуться к беспорядку позже. Вещи, которые я хочу сохранить sh, а затем восстановить, могут включать в себя:

  • вещи в объеме .gitignore
  • новые неотслеживаемые файлы
  • новые, отслеживаемые, но неразмещенные файлы (например, git add -N)
  • помеченные, но не зафиксированные файлы.
  • et c.
  • et c.
  • et c.

Короче говоря, я хочу получить тот же эффект, что и при использовании git clone для создания нового клиента и выполнения работы там, но все в том же духе. клиент.


РЕДАКТИРОВАТЬ: конкретный c случай, когда такие вещи, как git stash -a не удается выполнить sh что я хочу:

touch new_file
git add -N new_file
git stash -a

Это приводит к ошибке и заставляет stash вообще ничего не делать.

1 Ответ

1 голос
/ 01 мая 2020

Можно сохранить sh всех отслеживаемых, неотслеживаемых и игнорируемых файлов с git stash -a. Это наиболее полный вариант, который есть у git stash.

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

Вы также можете использовать git branch, чтобы создать другую ветвь с той же историей, и использовать git worktree, чтобы проверить ее в другом месте, а затем скопировать файлы.

...