Я вчинив безліч файлів, які зараз хочу ігнорувати. Як я можу сказати git ігнорувати ці файли з майбутніх комітетів?
EDIT: Я теж хочу видалити їх із сховища. Це файли, створені після будь-якої збірки, або для підтримки конкретних користувачів.
Я вчинив безліч файлів, які зараз хочу ігнорувати. Як я можу сказати git ігнорувати ці файли з майбутніх комітетів?
EDIT: Я теж хочу видалити їх із сховища. Це файли, створені після будь-якої збірки, або для підтримки конкретних користувачів.
Відповіді:
.gitignore
щоб відповідати файлу, який ви хочете ігноруватиgit rm --cached /path/to/file
Дивись також:
Відредагувавши .gitignore
відповідність ігнорованим файлам, ви можете git ls-files -ci --exclude-standard
переглянути файли, включені до списків виключення; ви можете потім зробити
//On Linux:
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
//On Windows:
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
//On mac
alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
щоб видалити їх із сховища (не видаляючи їх з диска).
Редагувати : Ви також можете додати це як псевдонім у свій .gitconfig файл, щоб ви могли його запускати будь-коли. Просто додайте наступний рядок у розділі [псевдонім] (змініть, якщо потрібно для Windows чи Mac):
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
( -r
Прапор xargs
забороняє git rm
запускати порожній результат і роздруковувати його повідомлення про використання, але він може підтримуватися лише GNU findutils. Інші версії xargs
можуть або не можуть мати подібний варіант.)
Тепер ви можете просто набрати git apply-gitignore
репо, і це зробить роботу за вас!
!
раніше git? ну ... мій один працював як alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
. tks!
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
-r
за замовчуванням і не приймається версіями BSD. Тож видаліть -r
.
залишити файл у репо, але ігнорувати майбутні зміни до нього:
git update-index --assume-unchanged <file>
і скасувати це:
git update-index --no-assume-unchanged <file>
щоб дізнатися, які файли були встановлені таким чином:
git ls-files -v|grep '^h'
заслуга за оригінальну відповідь на http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/
git ls-files -ci --exclude-standard -z | xargs -0 git update-index --assume-unchanged
якщо це допомагає.
git rm --cached
видалити файл у сховищі, що не відповідає потребі вікторини. Дякую. Я дійсно ціную це. Ваша відповідь мені дуже допомагає.
Будьте впевнені, що вашим фактичним репо є найновіша версія
.gitignore
за своїм бажаннямgit rm -r --cached .
git add .
потім виконувати як завжди
Виконайте такі дії:
Додати шлях до gitignore
файлу
Виконайте цю команду
git rm -r --cached foldername
вносити зміни, як зазвичай.