.gitignore и "Следующие неотслеживаемые файлы рабочего дерева будут перезаписаны извлечением" - PullRequest
768 голосов
/ 01 февраля 2011

Итак, я добавил папку в свой файл .gitignore.

Как только я делаю git status, он говорит мне

# On branch latest
nothing to commit (working directory clean)

Однако, когда я пытаюсь сменить ветки, я получаюследующее:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

Вот так выглядит мой файл .gitignore:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

Как мне заставить это работать, чтобы я мог переключать ветви, не удаляя эти файлы?

Если я внесу изменение, это повлияет на эти файлы?Другими словами, если бы я потом вернулся в эту ветку, все было бы идеально, как до моего последнего коммита?

Я не хочу терять эти файлы, я просто не хочу, чтобы они отслеживались.

Ответы [ 28 ]

1 голос
/ 28 декабря 2017

это легко решить, git говорит, что у вас есть одинаковые файлы в обеих ветках, поэтому вам нужно удалить определенные файлы из главной ветви, и тогда вы сможете объединить:

git merge "ваша ветка "

Надеюсь, у вас это работает, я только что решил свою ошибку.моя ошибка была:

ошибка: следующие неотслеживаемые файлы рабочего дерева будут перезаписаны слиянием: .vs / slnx.sqlite Пожалуйста, переместите или удалите их перед слиянием.Отмена

Теперь это работает!В моем случае .vs / slnx.sqlite был сгенерирован Visual Studio, мне нужно было закрыть его перед удалением.

0 голосов
/ 16 мая 2019

Проверьте, если какое-либо имя папки имеет символ '/' или какой-либо специальный символ, затем переименуйте эти папки. Затем вы просто клонируете хранилище в другое место.

0 голосов
/ 12 ноября 2018

Для сохранения измененных файлов и последующего использования измененного содержимого.Я обнаружил эту ошибку, когда я пытаюсь проверить ветку и при попытке перебазировать.Попробуй Git stash

git stash

0 голосов
/ 29 августа 2018

Просто удалите файлы или переименуйте их.

например.

$ git pull
Enter passphrase for key '/c/Users/PC983/.ssh/id_rsa':
error: Your local changes to the following files would be overwritten by merge:
        ajax/productPrice.php
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        ajax/product.php
Please move or remove them before you merge.
Aborting
Updating a04cbe7a..6aa8ead5

Мне пришлось переименовать / удалить ajax / product.php и ajax / produtPrice.php .

Не волнуйтесь, Git Pull вернет их обратно. Я предлагаю вам переименовать их вместо удаления, потому что вы можете потерять некоторые изменения.

Если это не помогает, тогда вам нужно удалить всю ветку и создать ее заново, а затем выполнить git pull origin remotebranch

0 голосов
/ 02 августа 2018

В большинстве ответов рассматривается удаление или удаление файлов, что является простым способом.Но иногда вы не хотите избавляться от локальных файлов.Но объединяйтесь со стратегией, так что у git есть решение и для этого;

git merge --strategy=ours master 
0 голосов
/ 31 октября 2014

В моем случае я видел эту ошибку, потому что я использую популярную CMS с открытым исходным кодом, и каталог, который вызывал проблемы, был каталогом загрузок, в который пишет CMS.

Итак, это говорит о том, что есть файлы, которых у вас нет, но которые вы не можете получить из версий.

Я перехватываю все файлы с живого сайта на свой локальный, затем проверяю это в репозитории в надежде, что это решит проблему.

0 голосов
/ 19 января 2016

Удалите .gitignore файл из appname / gen / для решения этой проблемы.

0 голосов
/ 14 декабря 2017

Я просто зашел в файловую систему и удалил файл напрямую, затем продолжил с git checkout, и это сработало.

У меня возникла проблема несколько раз, и это может быть связано с разработчиками, делающими удалениеpush, повторно добавить, push или что-то в этом роде.

...