Удаление папки из отслеживания git
мне нужно исключить папку (имя загрузки) из отслеживания. Я пытался бежать
git rm -r --cached wordpress/wp-content/uploads
и после этого я добавил путь .gitignore
/wordpress/wp-content/uploads
но когда я побежал git status
они отображаются как удаленные. Если я попытаюсь зафиксировать изменения, файлы будут удалены, а не только удалены из отслеживания.
что я делаю не так?
Я также пробовал
git update-index --assume-unchanged <file>
но это, кажется, отследить только файлы. Но мне нужно удалить целый папка (включая подпапки) из отслеживания.
5 ответов
я столкнулся с этим вопросом, когда гуглил для "Git удалить папку из отслеживания". Вопрос операции привел меня к ответу. Я резюмирую его здесь для будущих поколений.
вопрос
Как удалить папку из репозитория git, не удаляя ее с локального компьютера (т. е. среды разработки)?
ответ
Шаг 1. Добавьте путь к папке в корневой каталог РЕПО .gitignore
файл.
path_to_your_folder/
Шаг 2. Удалите папку из локального отслеживания git, но сохраните ее на диске.
git rm -r --cached path_to_your_folder/
Шаг 3. Толкать свои изменения в Git РЕПО.
папка будет считаться "удаленной" с точки зрения Git (т. е. они находятся в прошлой истории, но не в последней фиксации, и люди, вытаскивающие из этого РЕПО, удалят файлы из своих деревьев), но оставайтесь в своем рабочем каталоге, потому что вы использовали --cached
.
это работает для меня:
git rm -r --cached --ignore-unmatch folder_name
, без этой опции git выйдет с ошибкой в первом файле не в индексе.
чтобы забыть каталог рекурсивно добавить /*/*
путь:
git update-index --assume-unchanged wordpress/wp-content/uploads/*/*
используя git rm --cached
не подходит для сотрудничества. Подробнее здесь:как остановить отслеживание и игнорировать изменения в файле в Git?
из документации git:
еще одна полезная вещь, которую вы можете сделать, это сохранить файл в рабочем дереве, но удалить его из промежуточной области. Другими словами, вы можете сохранить файл на жестком диске, но больше не отслеживать его. Это особенно полезно, если вы забыли что-то добавить в свой .файл gitignore и случайно поставил его, как большой файл журнала или кучу .скомпилированный файл. Для этого используйте --cached вариант:
$ git rm --cached readme.txt
Так, может быть, не включать "- r"?
шаг 2.5: зафиксируйте изменения:
>git commit
Если вы нажимаете, не делая этого сначала, он ничего не делает!