З одним із файлів у моєму локальному сховищі git відбувається щось не так. Коли я намагаюся змінити галузь, вона говорить:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Що це могло означати?
З одним із файлів у моєму локальному сховищі git відбувається щось не так. Коли я намагаюся змінити галузь, вона говорить:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Що це могло означати?
Відповіді:
Це може означати, що інша програма використовує файл, що заважає git "переміщувати" файл у або з робочого каталогу під час спроби змінити гілки.
У мене це траплялося в Windows Vista, де eclipse - це програма, що "використовує" файл. Файл може бути насправді не відкритим у затемненні, але може бути відкритий процесом, запущеним eclipse.
У цьому випадку спробуйте закрити файл у будь-яких програмах, які могли його використовувати. Якщо це не працює, повністю закрийте всі програми, які, можливо, відкрили файл.
GitKraken
ви можете отримати це, якщо виконувати такі команди, як
У мене виникла ця проблема і вирішено її командою: git gc
Вищевказана команда видалить темп та непотрібні файли. (Збирач сміття.)
git pull
ініціюється git gc
автоматично, і gc намагався отримати доступ до деяких .pack та .inx файлів. Їх утримував процес "windows git", який володів git pull
командою. Запуск git gc
вручну і ніж - git pull
дійсно вирішує проблему.
git gc
я знову отримав ту саму помилку, коли gc
працював
це рішення звідси працювало для мене:
Це відповідь, специфічна для Windows, тому я знаю, що це не стосується вас ... Я просто включаю це на користь майбутніх шукачів.
У моєму випадку це було тому, що я запускав Git з непідвищеного командного рядка. "Запустити як адміністратор" виправив це для мене.
Ctrl+C
для припинення дуже довгого списку незв’язаних файлів; вийшов з програми gitbash, моєї IDE та програми GitHub Windows; перезапущений gitbash у підвищеному режимі "Запустити як адміністратор"; і побіг git gc --aggressive
. Виконали деякий час, але пройшли без помилок.
Я зіткнувся з цим питанням під час виконання git pull
.
Я спробував, git gc
і це вирішило мою проблему.
У моєму випадку немає жодних процесів, що торкаються файлу чи каталогу. Можливо, це станеться, якщо шлях дуже довгий, оскільки обмеження операційної системи (windows). Спробуйте ввімкнути прапор підтримки longpath у глобальній конфігурації git, як зазначено нижче:
git config --global core.longpaths true
або спробуйте встановити прапор відповіді "так / ні", якщо він для вас не конфліктний
set GIT_ASK_YESNO=false
Якщо шлях занадто довгий, я не знайшов вдалого рішення.
GIT_ASK_YESNO
, не можу знайти інформацію про це. Звідки воно походить?
core.longpaths
з додатковим: скинути - твердий чорнослив gc працював на мене - але довелося закрити AndroidStudio, щоб не зіпсувати його вбудовані інструменти
Я спробував, git gc
і це вирішило мою проблему.
Це може бути корисним для когось; якщо все вищезазначене не спрацювало для вас, виконайте наступні дії:
Закрийте свій IDE (у мене було Eclipse, не впевнений, чи стосується він Intellij та інших) або будь-який інший додаток, який може використовувати git.
Відкрийте git з командного рядка (у моєму випадку я мав git bash) та запустіть так, git gc
як згадували інші.
Це зробило для мене чари.
Оскільки я використовую gitkraken та командний рядок, я зіткнувся з тією ж проблемою. І тоді я запускаю git gc
команду, це вирішило мою проблему. Тож я щасливий і хочу поділитися деякими пунктами, які можуть бути корисними.
Що git gc
буде робити?
git gc
видалення недоступних об'єктів, які могли бути створені за допомогою попередніх викликів git add.
Коли бігати git gc
?
З док , користувачам рекомендується виконати це завдання на регулярній основі в рамках кожного сховища , щоб підтримувати гарне використання дискового простору і хороші операційні показники.
Як зробити його автоматично налаштованим?
Деякі команди git можуть автоматично запускати git gc; детальніше див. прапор --auto нижче. Якщо ви знаєте, що ви робите, і все, що вам потрібно, це назавжди відключити цю поведінку без додаткових міркувань, просто зробіть це
git config --global gc.auto 0
У мене виникла така проблема в Windows 7, і виявилося, що це пов’язано з деяким осиротілим git.exe
процесом.
Щоб вирішити це, відкрийте диспетчер завдань і вбийте всі git.exe
процеси.
Оскільки git
команди є короткочасними, їх зазвичай ніколи не бачити git.exe
в диспетчері завдань. Коли вони там є, це означає, що щось не так, і ви повинні вбити ці процеси.
У Windows 8: я запустив git gc, і він сказав, що git gc вже запущений, я запустив git gc --force і побіг смітник.
Тоді я міг би перемикати гілки та об’єднуватись без жодних проблем, спробувати git gc --force.
Можливо, процес gc не зупинився витончено з тих чи інших причин.
У мене була ця проблема з .tmp
файлами в /.git/objects/pack
папці. Я думаю, що щось не вдалося під час натискання чи потягу, тому я видалив ці тимчасові файли та скинув HEAD до мого останнього фіксації. Не впевнений, чи радить це, але це працювало на мене. Також git count-objects -v
подав мені список .tmp
файлів, які не належали до папки пакета.
Або придушити y / n повідомлення у Windows git open cmd.exe
та запустіть:
SETX GIT_ASK_YESNO false
дивись тут: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
допомагає у визначенні об'єктів, що залишилися температурних в pack
папці.
Мені вдалося вирішити це, відкривши Powershell як адміністратора і звідти
git checkout <branch_name>
Я зіткнувся з тим же питанням, роблячи "git pull". Я спробував вручну вести команду git команда 'git gc', і це вирішило мою проблему.
Після запуску команди
git rm -rf foo.bar
Я бачу помилку
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Тому що інша програма використовує цей файл . Наприклад, коли я запускаю веб-додаток Java у моделі налагодження або запускаю веб-додаток на сервері, я не можу видалити файл журналу. Вимкніть сервер програми (або вимкніть процес налагодження), повторіть спробу
git rm -rf foo.bar
Я бачу, що файл видалено.
Після того, як жодна з вищезазначених відповідей, здавалося, не спрацювала, біг git fetch -p
зробив роботу для мене.
Я зіткнувся з цією проблемою в Windows, можливо, ви захочете запустити git bash як адміністратор, а потім виконати команди бажання, які вирішили проблему для мене.
Я перепробував кожну пораду на цій сторінці, і нічого не допомогло. Я робив а, git fetch
і git reset --hard origin/development
дав мені помилку. Не вдалося скинути до останньої версії.
Що допомогло, це перевірка іншої гілки, а потім перевірка попередньої гілки. Дуже дивно, але це вирішило проблему.
Якщо ви використовуєте Docker і працюєте з Windows 10, можливо, ви захочете зупинити контейнер (и), де файл може працювати. Щоб показати статуси контейнерів, запустіть
docker ps -a
Щоб зупинити їх, просто запустіть
docker stop <container name or container id>
Це працювало для мене, оскільки я запускаю свої локальні файли, використовуючи файл .sh
У Windows бачили цю помилку на git clone
(досить великому) репо. Закрили SmartGit і призупинили програмне забезпечення для резервного копіювання (CrashPlan), і після цього воно спрацювало. Не впевнений, хто з 2 зробив трюк, але якщо запустити будь-який, це може зробити це і для вас.
У мене виникло те саме питання під час виконання git pull, і як зазначено вище, це було через програму, яка містила ці файли і не дозволяла тягнути git. Закриття програми допомогло. Зазвичай IDE (наприклад, Eclipse), звідки файли перевіряються, утримуватиме його у фоновому режимі. Закриття ж і повторне запуску git вирішили проблему для мене.
У мене була така ж помилка, і закриття програми, яка відкрила файл, вирішила її. Я зміг повернутися назад і натиснути "Y"