Ответ 1
У меня была та же проблема.
Я просто перезапустил мой компьютер, и он снова работал.
Это не помогает найти причину проблемы, но по крайней мере вы можете продолжать работать.
Я установил два сервера Windows с последними версиями cygwin и git, и я пытаюсь клонировать репозиторий git от S1 до S2. Я могу успешно ssh от S2 до S1, используя ключи RSA, но когда я это делаю: git clone "ssh://root @S1/path/to/my/repo" Он отбрасывает этот вывод:
Cloning into /cygdrive/c/program files/apache software foundation/apache2.2/htdocs/myfolder...
2 [main] git 2004 C:/cygwin/lib/git-core/git.exe *** fatal error - cygheap base mismatch detected - 0x61242860/0x6123790.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search fro cygwin1.dll using the WIndows Start->Find/Search facility and delete all bu the most recent version. The most recent version *should* reside in x:\cygwin\bin, where 'x' is the drive on which you have installed the cygwin distrubtion. Rebooting is also suggested if you are unable to find another cygwin DLL.
--5 more errors like that one --
remote: Counting objects: 3275, done.
remote: Compressing oobjects: 100% (3106/3106), done.
fatal: write error: Broken pipe
Итак, я последовал этим инструкциям, но не повезло. Любые предложения?
У меня была та же проблема.
Я просто перезапустил мой компьютер, и он снова работал.
Это не помогает найти причину проблемы, но по крайней мере вы можете продолжать работать.
EDIT: я нашел решение.
TL; DR: Перейдите в папку GitHub AppDatastrong > и удалите папку PortableGit и перезапустите GitHub
C:\Users\[username]\AppData\Local\GitHub
PortableGit
, и заканчивается случайной строкой букв и цифр(Оригинальный "ответ" )
Я пробовал целую кучу вещей, и я понятия не имею, что на самом деле работало в конце. Я перезапустил GitHub, перезапустил свой компьютер, удалил и переустановил GitHub, удалил несколько других программ, которые я недавно установил, но мне не пришлось, удалил папку GitHub в каталоге AppData\Local, загрузил и установил cygwin, и, возможно, некоторые другие вещи "Забыл".
Последняя попытка - найти все файлы cygwin1.dll в Проводнике и переименовать их в cygwin1x.dll, а затем перезагрузить компьютер. После того, как я это сделал, он снова работал.
Я могу предположить, что здесь, но я скажу, что загрузка и установка cygwin, а затем перезагрузка моего компьютера сделала трюк.
Я только начал испытывать это в последнее время, и ни один из приведенных выше ответов не применил к моему делу - У меня не было установлено Cygwin или GitHub.
Вместо этого в моем случае функция безопасности Windows, Рандомизация макета пространства адресов или ASLR создала эту проблему. По умолчанию это отключено для программ, которые не считают себя совместимыми.
Тем не менее, я включил ASLR для всех программ для обеспечения дополнительной безопасности. Недостатком является то, что команды git теперь не работают.
Решение заключалось в том, чтобы исключить ASLR для исполняемых файлов git.. Поскольку их довольно много, мне пришлось использовать PowerShell в качестве administrator:
Get-Item -Path "C:\Program Files\Git\usr\bin\*. exe" | % {Set-ProcessMitigation -Name $_. Name -Disable ForceRelocateImages}
Код>
Вы не упомянули об этом в своем заявлении о проблеме, но я предполагаю, что вы работаете в 64-разрядной версии Windows. У Cygwin проблемы с 64-разрядной версией Windows, особенно с большими программами. Я считаю, что это связано с проблемами управления памятью в библиотеке поддержки cygwin1.dll. Похоже, что это делает неудовлетворительное предположение о том, что он будет вечно и всегда будет сопоставлен с одним и тем же адресом в каждом процессе, так что для него все в порядке, чтобы сохранить специфические вещи процесса (например, кучи) в общесистемных глобальных переменных.
В моем большом свободном времени я пытался отследить проблематичные биты. Тем временем вы можете попробовать перезагрузить сам cygwin1.dll. Будьте предупреждены, что большой удар намного сложнее, чем нужно, - еще сложнее, чем перезагрузка всего остального.
Для меня причина заключалась в том, что git не был установлен через cygwin, хотя регулярная загрузка из git -scm. Как только я запустил настройку cygwin, добавил git, он работал отлично.
Вы получаете эту ошибку с любыми другими командами? С git --version
?
Попробуйте перезагрузить Cygwin setup.exe
и переустановите cygwin1.dll
(пакет "cygwin" в разделе "База" ) и ваш пакет git (пакет "git" в разделе "Devel" ) и перезагрузка.
Я знаю, что это старый поток, но поскольку это первый результат по этой проблеме, я хотел бы добавить свое решение в надежде, что он поможет кому-то другому.
Во-первых, запустите cygcheck PROGRAMM
, в моем случае у меня была проблема с tar.exe
, поэтому я побежал: cygcheck tar
команда cygcheck
показывает, какие DLL используются.
Все выглядело правильно в cygcheck
, поэтому я решил, основываясь на комментариях Джима Шнайдера, перейти от 64-битной версии Cygwin к 32-битной версии, что в конечном итоге решило мою проблему.
Для меня проблема заключалась в существовании более старой папки C:\cygwin64. Переименования этой папки было недостаточно. Когда я удалил эту папку, проблема исчезла. Мне не нужно было перезагружаться после удаления папки C:\cygwin64.
В моем случае перезагрузка компьютера не сработала.
Наконец-то я обнаружил, что это произошло из-за конфликта между установкой Msys (Installed, когда я установил утилиту командной строки git). Если ваш системный путь содержит какие-либо каталоги с версией Msys, удалите такие записи пути и повторите попытку. Похоже, cygwin пытается выполнить исполняемые файлы из установки Msys, а .dll обнаруживает missmatch.
В моем случае переменная PATH в переменных среды была неправильной. Я переместил cygwin немного раньше в пути (убедившись, что он установлен перед git path). Таким образом, cygwin dll был в пользу git dll.
Например; Путь к C:\Program Files\Git\usr\bin;C:\cygwin\bin;...
был изменен на C:\cygwin\bin;C:\Program Filenter code herees\Git\usr\bin;...
Среда была Win7x86, и для того, чтобы использовался обновленный путь, требовалась перезагрузка.
У меня была такая же ошибка, когда я пытался перейти на git-репозиторий из Visual Studio 2017, используя скрипт, начинающийся С#!/Bin/sh из
[repo folder]\.git\hooks\commit-msg
Сообщение об ошибке:
1 [main] sh (11460) c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\commonextensions\microsoft\teamfoundation\team explorer\Git\usr\bin\sh.exe:
*** fatal error - cygheap base mismatch detected - 0x14DD408/0x12AD408.This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facilityand delete all but the most recent version.
The most recent version *should*reside in x:\cygwin\bin, where 'x' is the drive on which you haveinstalled the cygwin distribution.
Rebooting is also suggested if youare unable to find another cygwin DLL.
Я пробовал разные решения выше без успеха
Для решения этой проблемы я скопировал содержимое с:
C:\Program Files\Git\usr\bin
в
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\usr\bin
Проблема на моем компьютере произошла из-за несоответствия версий на sh.exe, и копирование этих файлов решило проблему
я просто перезапустил свой компьютер, и он отлично работает для меня.
Я решил эту проблему, временно отключив Защитник Windows и повторив попытку - подробности см. в https://superuser.com/a/1047031/158243.
Так как это базовое несоответствие, вы можете попробовать переустановить:
git rebase <branch>