Некоторые способы проверки файлов .orig в моем git-репозитории во время слияния, которые теперь отображаются в измененном и неотслеживаемом секторе. Но я больше не хочу эти файлы в моем хранилище. Как это сделать.
modified: Gemfile.lock.orig
# modified: Gemfile.orig
# modified: app/assets/images/bg_required.png.orig
# modified: app/assets/javascripts/application.js.orig
etc...
Любая помощь будет оценена.
Ответы:
Лучшее решение в этом случае - сохранить простоту и избавиться от этих файлов независимо от git:
Кроме того, в Windows / PowerShell вы можете выполнить следующую команду
источник
git clean -df
этого не делает. Почему мы должны вручную убирать мусор, который он оставляет?Попробуйте
git clean
больше информации вы можете найти здесь или здесьисточник
git rm <filename>
а затем зафиксировать. После этого добавьте файл * .orig в git ignore.git clean -i
действительно приятно. он выдаст вам список файлов, которые будут удалены, и даст вам варианты действий со списком (отфильтруйте список, удалив все элементы в списке и некоторые другие параметры).git clean -f -e '*.*' -e '!*.orig'
Есть только шаблон исключения, но он имеет небольшую поддержку негативных шаблонов. Таким образом, мы можем исключить все файлы*.*
, а затем отрицать исключение только*.orig
файлов.ты можешь сделать:
Для получения дополнительной информации обратитесь к Git mergetool генерирует нежелательные файлы .orig
источник
Вы можете игнорировать файлы, используя .gitignore
Просто поместите * .orig в список, как показано здесь
https://help.github.com/articles/ignoring-files
для удаления текущих файлов вы можете создать сценарий оболочки и запустить из папки проекта, как показано ниже
источник
К сожалению
git clean
, не работает для меня, потому что я*.orig
добавил в свой глобальный файл gitignore, поэтому они также игнорируются. Даже запускgit clean -x
не годится, потому что я не хочу, чтобы все мои игнорируемые файлы были удалены.git clean -i
полезно, но на самом деле я не хочу просматривать каждый файл.Однако мы можем использовать шаблон исключения и отменить совпадение. Предварительный просмотр с этой командой:
Затем, когда вы уверены, передайте
force
флаг, чтобы действительно удалить их:Основано на комментарии leorleor
источник
git rm Gemfile.lock.orig
а остальные файлы вам не нужны.git commit --amend
Чтобы полностью удалить эти капли,
git gc --prune=0 --aggressive
источник
Для меня
git clean -f
удалены все * .oig файлы. И хранит те, которые уже были там раньше.Вот как это (почти) выглядело после слияния:
.idea/codeStyles/
был уже там до слияния как неотслеживаемый файл..idea/misc.xml.orig
(и многое другое) пришлось удалить.=> Использование
git clean -f
:привело к:
источник
ты можешь просто сделать
git status -s | grep "\.orig$" | awk '{print $2}' | xargs -n1 -r echo rm
TL; DR;
git status -s
позволяет получить все измененные / отсутствующие файлы в отношении индексаgrep "\.orig$"
отфильтровывать файлы, сохраняя окончание ".orig"awk '{print $2}'
перечисляет имя файла (пропуская информацию git, например, A, M, ??)xargs -n1 -r echo rm
печатает команды удаления для каждого аргумента (-n1: по одной за раз и -r: пропустить, когда пусто), просто скопируйте и вставьте команды, дважды проверяя файлы для удаления.источник
git rm <file>
http://git-scm.com/docs/git-rm
Также добавьте файлы / каталоги, которые вы хотите игнорировать, в свой файл .gitignore.
источник
git rm <file> <file>
Просто перечислите их.git rm
, просто используйтеrm
вместо этого