Получение фатальной ошибки в Git для нескольких стадийных записей -- git пол Связанный проблема

Getting a fatal error in git for multiple stage entries


241
vote

проблема

русский

Использование GIT версии 2.2.0 с помощью Enity Game Engine на OS X и хотела совершить мой код. Я добавил все и не получил сообщение об ошибке. Затем совершайте -M и получите это сообщение об ошибке:

 <код> fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'   

Не замечая его, я толкнул, что не дал сообщение об ошибке, на самом деле сказал <код> Everything up-to-date Поэтому я проверил Bitbucket (где проводится репо), и это не показало мое дело. Поэтому я проверил свой локальный журнал, и это также не показывает моего совершенства.

Я посмотрел в Google за ответ ... и ничего. Что эта ошибка? И как я могу это исправить?

Английский оригинал

Using Git version 2.2.0 with unity game engine on OS X, and wanted to commit my code. I added everything and did not get an error message. then commit -m , and got this error message:

fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources' 

Not noticing it I pushed, that didn't give an error message, in fact said Everything up-to-date So I checked bitbucket (where the repo is held) and it didn't show my commit. so I checked my local log and that also does not show my commit.

I've looked into google for an answer... and nothing. what is this error? and how can I fix it?

</div
  
         
         

Список ответов

381
 
vote
vote
Лучший ответ
 

Первый обходной путь, который, похоже, работает с недавними версиями Git (2.3+, Q2 + 2015), упоминается в Грант 's Более современный ответ :

  1. Удалить индекс

     <код> $ rm .git/index   
  2. Добавить все

     <код> $ git add -A   
  3. фиксация

     <код> $ git commit -a   

Оригинальный ответ (конец 2014 года)
Обычный обходной путь:

    .
  • клон снова удаленный репо в новое локальное репо
  • Добавьте изменения от первого репо на второй:

     <Код> $ cd /patH/to/second/cloned/repo $ git --work-tree=/path/to/first/repo add .   

Вы можете увидеть это сообщение об ошибке в read-cache.c / код> , обсуждаемый в этом патче (" <Код> read-cache.c : Убедитесь, что невнимаемые записи удаляются ") и введены в GIT 2.2 COMBITE .
Поскольку это так недавно, возможно, что понижают понижение git до 2.1, чтобы не быть затронутым этим патчм.

op daniel toebe добавляет В комментариях :

Проблема произошла на моем MacBook, которое решило потерпеть неудачу на меня, и другой компьютер Mishap положил меня на моих проектах.

 

The first workaround, which seems to work with recent versions of Git (2.3+, Q2+ 2015) is mentioned in grant's more up-to-date answer:

  1. Delete the index

    $ rm .git/index 
  2. Add all

    $ git add -A 
  3. Commit

    $ git commit -a 

Original answer (late 2014)
The usual workaround is to:

  • clone again the remote repo into a new local repo
  • add the changes from the first repo to the second one:

    $ cd /patH/to/second/cloned/repo $ git --work-tree=/path/to/first/repo add . 

You can see this error message in read-cache.c, discussed in this patch ("read-cache.c: Ensure unmerged entries are removed "), and introduced in the Git 2.2 commit.
Since this is so recent, it is possible that downgrading Git to 2.1 would be enough to not be affected by that patch.

The OP Daniel Toebe adds in the comments:

The issue happened on my macbook, which decided to fail on me, and another computer mishap put me way behind on my projects.

</div
 
 
         
         
167
 
vote

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

Я смог исправить эту проблему, удалив файл .git / index в моем репозитории, аналогично тому, что предложил @slider (я считаю, что он опечатал путь).

 <код> rm .git/index   

Тогда мне пришлось добавить и зафиксировать мои локальные изменения снова

 <код> git add -A git commit -m "..."   

Я тогда смог удалить удаленно.

Что такое индекс Git и как это уместно?

Что такое сделку с индексом Git? < / a>

Индекс git "- это то, где вы помещаете файлы, которые вы хотите, приверженные для хранилища GIT.

Перед вами «совершать» (CheckIn) файлы в репозиторий Git, вам нужно сначала разместить файлы в Git «Индекс».

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

Редактировать: кажется, что это связано с MAC (на основе комментариев), так что если он поможет I на OSX 10.10 и GIT версии 2.3.4, установленной через Brew.

 

I believe I encountered this issue because I added and committed changes and then deleted a file that I had just committed. If this sounds similar to your case, I recommend following the below to save re-cloning and manually adding in your changes.

I was able to fix this issue by deleting the .git/index file in my repository, similar to what @slider suggested (I believe he mistyped the path).

rm .git/index 

Then I had to add and commit my local changes again

git add -A git commit -m "..." 

I was then able to push remotely.

What is the git index and how is it relevant?

What’s The Deal With The Git Index?

The git "index" is where you place files you want committed to the git repository.

Before you "commit" (checkin) files to the git repository, you need to first place the files in the git "index" .

I believe that by deleting this file, git will re-index the repo, create a new one and you're good to go. It solves this problem because the local repository is re-indexed without the file I deleted that caused all the fuss.

Edit: It seems like this is Mac related (based on comments) so if it helps I'm on OSX 10.10 and git version 2.3.4 installed through brew.

</div
 
 
         
         
119
 
vote

для проекта

 <код> rm .git/index git reset   

После удаления индекса вам нужно воссоздать его с помощью Git сброс

для подмодуля:

Перейти к основному папке проекта

 <код> rm .git/modules/your_project_structure/index git reset --hard HEAD   
 

For project

rm .git/index git reset 

after deleting index you need to recreate it by git reset

For submodule:

Go to main project folder

rm .git/modules/your_project_structure/index git reset --hard HEAD 
</div
 
 
         
         
29
 
vote
<Р> Вы можете удалить Git индексный файл из проекта. В корневом каталоге вашего проекта, выполните следующую команду:
 <код> rm .git/index   
<Р> После этого мерзавца он работает.
 

You can remove Git index file from your project. In the root of your project, run the following command:

rm .git/index 

After that git it work.

</div
 
 
         
         
3
 
vote
<Р> Я стараюсь другое решение, и это работает для меня. Ниже приведены мои параметры
 <код> #cd .git #rm index #cd .. #git add .   
 

I try a different solution and it works for me. Below are my options

#cd .git #rm index #cd .. #git add . 
</div
 
 
 
 
1
 
vote

Если это происходит в подмодуль

<Р> Файл индекса находится внутри родительского <код> .git Каталог:
 <код> .git/modules/your_project_structure/index   
<Р> В подмодуль, нет каталогов с именем <код> .git (по крайней мере, в проекте я работаю), есть только <код> .git файл, который говорит вам (и мерзавец), где искать каталог мерзавца этого проекта.

Git статус показывает изменения, которые я не делал

<Р> После удаления индексных файлов, и делать <код> git reset , я оказался перед много необъяснимых изменений и жесткий сброс не помогает.

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

<Р> Индекс казался испорчены, так что я удалил его с помощью следующих команд.
 <код> git rm -rf --cached . git reset --hard HEAD   
 

If this happens in a submodule

The index file is located inside the parent .git directory:

.git/modules/your_project_structure/index 

In a submodule, there are no directories named .git (at least in the project I'm working on), there's only a .git file which tells you (and git) where to look for the git directory of that project.

Git status shows changes that I didn't make

After removing the index files, and doing a git reset, I found myself facing lots of inexplicable changes and a hard reset wasn't helping.

Warning you'll lose all your changes, so commit them and push before continuing.

The index seemed corrupted, so I removed it with the following commands.

git rm -rf --cached . git reset --hard HEAD 
</div
 
 
0
 
vote
<Р> Я только что получил эту ошибку с Github Desktop Client (OSX). Все, что я сделал, было выйти из приложения и вновь, а затем он начал работать.
 

I just got this error with the Github Desktop Client (OSX). All I did was quit the app and reopened and then it started working.

</div
 
 

Связанный проблема

218  Попытка потянуть с ошибкой: не может открыть .git / fetch_head: разрешение запрещено  ( Trying to git pull with error cannot open git fetch head permission denied ) 
Помогите мне, пожалуйста, я пытаюсь запустить это в моем терминале: <код> asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull error: cannot open .git/FETCH_HEA...

8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора?  ( Is there a better way of writing a git pre commit hook to check any php file in ) 
Что я имею до сих пор, это <код> #!/bin/sh php_syntax_check() { retval=0 for i in $(git-diff-index --name-only --cached HEAD -- | grep -e '.php$');...

0  GitLab - не в состоянии нажать локальные ветви на удаленный  ( Gitlab not able to push local branches to remote ) 
У меня есть доступ для разработчика вправо для GitLab. Я не могу выполнять какую-либо «толкать» операцию для удаленного начала. Может ли создавать новую локал...

1  Git: Как интегрировать выбранные файлы из другого репо на филиалы в основном репо?  ( Git how to integrate selected files from another repo into branches in main rep ) 
Вот настройка: У нас есть команда документации, которая работает в собственном хранилище Git. В основном репозитории продукта у нас есть мастер и бета-фил...

6  Попытка использовать SCM: тег в работе Jenkins для репозитория Git, который требует имена пользователя / пароля  ( Attempting to use scmtag in a jenkins job for a git repository that requires a ) 
Я пытаюсь настроить задание сборки jenkins / maven / git, как описано Axel Fontaine ( http://aaxelfontaine.com/blog/final-nail.html ). Я сделал дополнения к м...

4  Сообщение об ошибке Xcode «Удаленный репозиторий отклонил коммиты» при нажатии на GitHub  ( Xcode error message the remote repository rejected commits when pushing to git ) 
У меня есть филиал названа разрабатывать что я натянул, добавил какой-то код, совершенный, потянул снова, и теперь пытаюсь нажать, но я получаю следующее со...

156  Git говорит, что удаленный REF не существует, когда я удаляю удаленную ветвь  ( Git says remote ref does not exist when i delete remote branch ) 
Я бежал <код> git branch -a <код> * master remotes/origin/test remotes/origin/master Я хочу удалить мою удаленную ветвь Я попробовал <код> git ...

6  Unsync'd git репозиторий в dropbox  ( Unsyncd git repository in dropbox ) 
У меня есть репозиторий Git (и рабочий каталог), который хранится в моем dropbox, поэтому я могу двигаться вперед и назад между компьютерами без необходимости...

0  Делал ли Git Compart, Git Thing и подталкивал мои изменения в репо. Как я могу отправить запрос на тягу на тот, который я совершил  ( Did a git commit git pull and pushed my changes to the repo how can i send a p ) 
Я искал это через Интернет, но не смог найти решение. Вот мой сценарий, 1) Я сделал свои местные изменения. Делал ли GIT Commit. Это получит удостоверение л...

0  Изменения после запроса по тяги  ( Changes after pull request ) 
Я сделал запрос на тягу на проект GitHub, но он был отклонен из-за некоторых изменений, которые были рекомендованы мне. Теперь я вижу, что после моего запроса...

2  «Git Push» не удалось: «Вы не указываете какие-либо refspecs для толкания»  ( Git push failed you did not specify any refspecs to push ) 
Я настроил проект Git на ProjectLocker, чтобы нажать на мои файлы GIT. Затем я вошел в каталог, где я инициализировал проект Git и устроил мои файлы. И, након...

2  Получите «Потяните имя запроса» из файла / строки  ( Get the pull request name from a file line ) 
Учитывая файл и конкретную строку, например <код> myFile.php line 123 , Будет возможен получить информацию о том, в которой потяните запрос или филиал или вы...

0  Digitalocean не обновляет должным образом  ( Digitalocean not updating properly ) 
У меня есть проект реагирования, который я загрузил в цифровой океан. У меня есть проблема, где я внес некоторые изменения в проект. Требуется ли Git Pull (см...

0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT?  ( How can multiple users use the same directory hierarchy for doing git operations ) 
У меня есть .git / config файл, который имеет несколько пользователей, определенных как: <код> [user] name=user1 email=user1@domain.com name=u...

6  Зависимости сборки TeamCity Build и выбирая правильную ветвь  ( Teamcity build dependencies and choosing the correct branch ) 
У меня есть один проект с тремя конфигурациями сборки: Интеграция Развертывать dev Развертывание релиза Конфиги по сборке 2 и 3 зависят от 1 через с...

Связанный проблема

218  Попытка потянуть с ошибкой: не может открыть .git / fetch_head: разрешение запрещено 
8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора? 
0  GitLab - не в состоянии нажать локальные ветви на удаленный 
1  Git: Как интегрировать выбранные файлы из другого репо на филиалы в основном репо? 
6  Попытка использовать SCM: тег в работе Jenkins для репозитория Git, который требует имена пользователя / пароля 
4  Сообщение об ошибке Xcode «Удаленный репозиторий отклонил коммиты» при нажатии на GitHub 
156  Git говорит, что удаленный REF не существует, когда я удаляю удаленную ветвь 
6  Unsync'd git репозиторий в dropbox 
0  Делал ли Git Compart, Git Thing и подталкивал мои изменения в репо. Как я могу отправить запрос на тягу на тот, который я совершил 
0  Изменения после запроса по тяги 
2  «Git Push» не удалось: «Вы не указываете какие-либо refspecs для толкания» 
2  Получите «Потяните имя запроса» из файла / строки 
0  Digitalocean не обновляет должным образом 
0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT? 
6  Зависимости сборки TeamCity Build и выбирая правильную ветвь