Подтвердить что ты не робот

Как git изменения смены в текущей папке

Я хотел бы сохранить изменения только в текущей папке и подпапках. Как я могу это достичь?

Я пробовал очевидный подход - git stash ., но он не работает.

Я знаю, что могу создавать временные коммиты и удалять их позже, но я хочу знать, поддерживает ли git stash сохранение определенных папок.

4b9b3361

Ответ 1

git stash не позволит вам сохранять частичные каталоги с помощью одной команды, но есть несколько альтернатив.

Вы можете использовать git stash -p, чтобы выбрать только те различия, которые вы хотите сохранить.

Если вывод git stash -p огромен и/или вы хотите использовать сценарий, и допустимо создавать временные коммиты, вы можете создать фиксацию со всеми изменениями, кроме тех, которые находятся в подкаталоге, а затем отменить изменения, и перемотать фиксацию. В коде:

git add -u :/   # equivalent to (cd reporoot && git add -u) without changing $PWD
git reset HEAD .
git commit -m "tmp"
git stash       # this will stash only the files in the current dir
git reset HEAD~

Ответ 2

Это должно сработать для вас:

cd <repo_root>
git add .         # add all changed files to index
cd my_folder
git reset .       # except for ones you want to stash
git stash -k      # stash only files not in index
git reset         # remove all changed files from index

В основном, он добавляет все измененные файлы в индекс, за исключением папки (или файлов), которую вы хотите сохранить. Затем вы нажимаете их с помощью -k (--keep-index). И, наконец, вы reset указали обратно туда, где вы начали.

Ответ 3

Вы можете проверить один из интерфейсов GUI git, таких как SourceTree или TortoiseGit, вот что я лично перехожу к черепахе, так как оно просто намного быстрее, чем попытки сделать много команд командной строки.