Visual Studio 2017 - 치명적인 오류로 Git 실패
Visual Studio 2017 Community Edition(CE)을 사용하고 있으며 Microsoft 계정에 로그인하여 VSTS에 연결되어 있습니다.모든 프로젝트 및 리포지토리를 볼 수 있지만 변경 내용을 풀/페치/푸시하려고 하면 다음 오류가 발생합니다.
Error encountered while pushing to the remote repository: Git failed with a fatal error.
PushCommand.ExecutePushCommand
따라서 fetch 및 pull 명령도 마찬가지입니다.
Visual Studio 2017 설치 관리자에 Git for Windows를 설치했는데 VSTS에서 작동하지 않을 뿐만 아니라 GitHub 저장소에서도 작동할 수 없습니다.이걸 눈치챈 사람이 또 있나요?지금까지 두 대의 기계에서 발생했습니다.
Visual Studio 2015 Enterprise Edition(EE)과 CE는 저에게 완벽하게 잘 작동합니다.
이 문제는 Visual Studio가 Git를 어떻게 다루는지에 대한 문제라고 생각하게 만드는 훨씬 더 많은 인식을 갖게 된 것 같습니다.또한 Visual Studio를 업데이트할 때마다 이 문제가 다시 발생하며 Git가 다시 작동하도록 하기 위해 아래 답변의 일부 단계를 거쳐야 한다는 것을 알게 되었습니다.이 문제가 발생하는 이유와 Microsoft가 이 문제를 해결할 계획인지 여부를 잘 모르겠습니다.
제어판 → 사용자 계정 → Git용 자격 증명 관리자에서 일반 자격 증명을 변경한 후에는 효과가 있었습니다.
앞의 답변들이 아직 언급하지 않은 해결책을 여기에 추가하려고 하는데, 이것이 저를 위해 고쳐준 것입니다.
다으로로 합니다.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\
합니다.Git
폴더를 누릅니다.시스템에 Git 버전이 설치되어 있지 않은지 확인하고 제어판 → 프로그램 및 기능으로 이동하여 Git을 제거합니다(TortoiseGit은 내 경험에서 제거할 필요가 없으며 기본 Git 설치만 하면 됩니다).
Visual Studio 2017 설치 관리자를 열고 설치 옵션에서 "Windows용 Git"을 선택 취소합니다.
Git 웹 사이트로 이동하여 최신 버전의 Git for Windows를 설치합니다.
Visual Studio 설치 관리자로 돌아가서 "Windows용 Git"을 다시 선택합니다.새 버전처럼 보일 수도 있지만 다운로드하지 않습니다.이 작업이 완료되면 VSTS 및 TF Explorer에서 Git가 정상적으로 작동합니다.
저는 다른 문제가 있었습니다.내 때문에를 해결하기 OpenSSL .libeay32.dll
그리고.ssleay32.dll
Visual Studio 2017의 Git 폴더 내에서 한 폴더에서 다른 폴더로 이동합니다.
시작:C:\Program Files (x86)\Microsoft Visual Studio\2017\
\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\
받는 사람:C:\Program Files (x86)\Microsoft Visual Studio\2017\
\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core
참조: Git - 원격 리포지토리를 복제할 수 없습니다.
Control Panel\All Control Panel Items\Credential Manager
==>Windows Credentials
제거:Git 파일:http://...
다시 시도합니다.
맛있게 드세요!
저는 많은 시도를 했고 마침내 Git에서 읽은 내용 중 일부를 수정하여 작동하게 되었습니다. 원격 저장소를 복제할 수 없습니다.
Visual Studio 2017 CE 설치 수정 → 윈도우용 Git 제거(하드웨어 → 수정 → 단일 구성 요소).
삭제목에서 것을 합니다.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git
.Visual Studio 2017 CE 설치 수정 → Windows용 Git 추가(하드웨어 → 수정 → 단일 구성 요소)
Gitin 시스템 경로가 구성된 Windows(32비트 또는 64비트 버전)에 Git를 설치합니다.
아마도 2번과 3번은 필요하지 않을 것입니다. 저는 시도하지 않았습니다.
이제는 내 고그에서 잘 작동합니다.
다음 오류가 발생했습니다.
Git failed with a fatal error.
pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin
저는 이전의 모든 방법을 시도해 보았지만 효과가 없었습니다.나중에 코드에 충돌이 있다는 것을 알게 되었습니다(Visual Studio 2017 출력 창 참조).
저는 코드를 되돌렸고 작동했습니다.
저장소를 동기화하는 동안 Git에서 이러한 오류가 발생한 적이 있습니다(동료로부터 변경을 보류하는 동안 커밋을 보내려고 했습니다).
Git가 치명적인 오류와 함께 실패했습니다. pull --composose --composite --no-edit --no-stat --composodules=no origin
로컬 커밋을 만들기 위해 버튼을 누른 후 Visual Studio는 하나의 파일을 커밋되지 않은 상태로 남겼고 이 정교한 오류 메시지는 실제로 "모든 변경 사항을 커밋"을 의미했습니다.
누락된 파일은 Entity Framework 6 모델로, 변경한 내용이 없지만 커밋되지 않은 파일로 표시되는 경우가 많습니다.
모두 커밋하거나 커밋되지 않은 모든 변경사항을 실행 취소할 수 있습니다.
이것은 풀과 충돌할 보류 중인 커밋이 있는 VS 2017에서 발생하는 것으로 보입니다.명령 터미널로 이동하여 "git pull origin"을 수행하면 일반적으로 혼동의 원인이 되는 오류가 발생합니다.문제를 해결하려면 VS 2017에서 변경한 내용을 모두 확인한 다음 VS 2017에서 풀 또는 동기화를 다시 시도하십시오.말할 것도 없이...VS 2017에서는 바람직하지 않은 동작입니다.
저도 같은 문제가 있었습니다.다음 단계를 통해 문제가 해결되었습니다.
- 백업 및 삭제 "C:\Program Files(x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\공통 확장\Microsoft\팀 파운데이션\팀 탐색기\Git"
- 최신 버전의 Git 설치: https://git-scm.com/download/win
저도 같은 문제가 있었습니다.Visual studio를 다시 시작하는 것이 효과가 있었습니다.항목을 다시 설치하기 전에 사용해 볼 수 있습니다.
GitKraken과 Visual Studio 2017을 사용하고 있습니다.
GitKraken은 저장소를 복제할 때 "https://github.com/user/Repo.git " 대신 "git@github.com :user/Repo.git"와 같은 가져오기 주소를 남깁니다.
이 문제를 해결하려면 Team Explorer → 설정 → 리포지토리 설정 → 원격 → 편집으로 이동한 후 "git@"를 "http://"로, ":"를 "/"로 변경합니다.
git access 비밀번호를 변경한 후 이 문제가 발생했습니다!
PowerShell 콘솔을 통해 자격 증명을 재설정해야 했습니다.
Git 저장소 폴더 수준에서 스크립트는 다음과 같습니다.
git config --system --unset credential.helper
git config --system credential.helper store
git fetch
사용자와 암호를 묻는 메시지가 표시됩니다.
다음 명령은 더 이상 인증을 요청하지 않습니다.
git fetch
출력 창에서 위의 오류가 발생했을 때 아래 해결책을 따라 문제가 해결되었습니다.
Visual Studio 2017 Enterprise Edition을 사용하는 경우 userId를 아래 명령의 사용자 ID로 바꾸고 windows run window(윈도우즈 키 + R)에서 이 명령을 실행합니다.
/netonly /user로 실행:사용자 ID "C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\Common7"IDE\devenv.exe"
암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하십시오.새 Visual Studio 인스턴스가 열리고 제대로 작동합니다...
와! 이 문제에 대한 해결책은 정말 많습니다!
이거 쉬운 걸로 해봐요!
암호를 변경합니다!
바로 요전 날, 저는 제 비밀번호가 14일 후에 만료된다는 통지를 받기 시작했습니다.이제 이틀 후에 다음 오류가 발생합니다.
저는 정말로 git이나 OpenSSL 라이브러리를 해킹하고 싶지 않아서, 제 컴퓨터의 Windows 비밀번호를 바꿨고 작동했습니다!
갱신하다
그리고 나서 그것은 다시 일어나기 시작했습니다.팀 탐색기에서 동기화로 이동합니다.그런 다음 Actions > Open Command Prompt를 수행합니다.명령 프롬프트에 다음을 입력합니다.git push origin
도..그게 편할지도 몰라요.
저도 비슷한 문제가 있었는데 마이크로소프트 기술자의 지시에 따라 해결했습니다.
- Visual Studio의 모든 인스턴스를 닫습니다.
- 작업 관리자를 열고 실행 중인 TFS 서비스가 있는지 확인합니다.각 항목을 선택하고 프로세스 트리 종료를 클릭합니다.
- 아래 폴더를 찾아 %LocalAppData%\에 있는 모든 컨텐츠와 폴더를 삭제합니다.마이크로소프트\팀 기반 {version}\캐시
- 제어판 -> 사용자 계정 -> 자격 증명 관리 -> Windows 자격 증명으로 이동하여 제거할 VSTS URL을 선택합니다.
- 그런 다음 "C:"로 이동합니다.\Users\USER NAME\AppData\Local\GitCredentialManager\tenant.cache"를 선택하고 삭제합니다.
- 또한 "C:"로 이동합니다.\Users\USER NAME\AppData\Local입니다.ID 서비스"를 선택하고 삭제합니다.
저도 이 문제에 부딪혔습니다.그날 아침에 코드를 동기화했기 때문에 갑자기 이 Git 오류가 발생했다는 것은 말이 되지 않았습니다.Visual Studio를 다시 시작해도 아무런 차이가 없습니다.위의 답변을 검토한 후 명확한 해결책을 찾지 못한 후, 저는 이미 설치한 TortooGit을 사용하여 Visual Studio 외부에서 동기화를 시도하기로 결정했습니다.효과가 있었어요.그러면 Visual Studio 내에서 정상적으로 동기화할 수 있었습니다.TorothyGit이 아직 없다면, tortoisegit.org 에서 다운로드(무료)할 수 있습니다.
이 경우 Windows(윈도우)에서 업데이트를 실행하고 PC를 다시 시작하기를 기다리고 있었습니다.어떤 알림도 못 봤지만, 음...전원을 껐다가 다시 켰다가 문제가 해결되었습니다.
이러한 Visual Studio 디렉토리 및 응용 프로그램을 사용하기 전에 먼저 이 작업을 수행합니다.
Visual Studio 2017 CE를 사용하여 다음과 같은 오류 메시지를 받았습니다.
원격 리포지토리에 푸시하지 못했습니다.자세한 내용은 출력 창을 참조하십시오.
출력 창에 다음이 표시되었습니다.
원격 리포지토리에 푸시하는 동안 오류가 발생했습니다. Git 프로세스가 예기치 않게 실패했습니다.Push Command.푸시 명령 실행
GitHub Desktop을 사용하여 변경사항을 푸시하려고 했습니다.다음과 같은 오류 메시지가 표시됩니다.
GitHub에서 비공개로 표시된 전자 메일 주소가 포함되어 있으므로 이러한 커밋을 푸시할 수 없습니다.
바로 그겁니다.솔루션:
GitHub 계정 열기 >> 설정 >> 이메일 >> "내 이메일 주소 비공개 유지" 선택 취소
끝났어요.그것이 제 경우의 문제였습니다.
저장소 설정에서 http://username@asdf/xxx/yy/zzz.git에서 username@를 제거하여 작동했습니다.
팀 탐색기 → 설정 → 리포지토리 설정 → 원격 → 편집
저는 아무것도 다시 설치하지 않고 명령줄에서 이 줄을 사용하여 문제를 해결할 수 있었습니다.
git config --글로벌 자격 증명.{myserver}.NTLM 권한
{myserver}을(를) 서버의 호스트 이름(http 또는 포트 번호 없음)으로 바꾸기만 하면 됩니다.
그 후 VS는 올바르게 연결할 수 있었습니다.
출처: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#q-i-thought-microsoft-was-maintaining-this-why-does-the-gcm-not-work-as-expected-with-tfs
프록시를 사용하는 경우 명령 프롬프트를 열고 다음을 시도합니다.
git config --global http.proxy <proxy address>:<port>
자세한 내용은 https://github.com/desktop/desktop/issues/2789 에서 확인할 수 있습니다.
VS 2017에서 원격 브랜치를 삭제하려고 할 때 동일한 오류가 발생했습니다.문제는 지점이 서버에 있지 않다는 것이었습니다(GIT와 함께 TFS2018 사용). 하지만 Visual Studio는 어떻게든 "원격/원격" 섹션에 지점을 표시했습니다.이는 원격 브랜치를 삭제할 수 없음을 의미합니다(VS는 이 오류를 제공하는 반면 서버 탐색기는 브랜치를 전혀 표시하지 않았습니다).
다음은 문제 해결 방법입니다(VS 2017에서 테스트됨).
- Visual Studio에서 "불량" 원격 분기를 두 번 클릭합니다.
- VS는 이제 여기서 로컬 분기를 생성했어야 합니다.
- 로컬 분기를 마우스 오른쪽 버튼으로 클릭하고 "원격 분기 설정 해제"를 선택합니다.
- 로컬 분기를 마우스 오른쪽 버튼으로 클릭하고 "지점 밀어넣기"를 선택합니다.
- 이제 진정한 원격 분기가 있어야 합니다.
- 원격 분기를 삭제한 다음 로컬 분기를 삭제합니다.
저와 같은 문제를 안고 있는 사람에게 도움이 되기를 바랍니다.
Visual Studio가 아닌 Windows에서 자격 증명 관리자를 열고 "Windows 자격 증명"을 선택한 후 git:https//stash...com 일반 자격 증명을 찾은 다음 버블 화살표를 클릭하여 편집 버튼으로 사용자 이름 및 암호 필드를 표시합니다.편집을 클릭하고 올바른 암호를 입력합니다.그리고 나서 바로 일을 시작했고, 아무것도 닫을 필요가 없습니다.
저도 받은 후에 이 문제가 있었습니다.wget
GNU 도구에서 바로 c:\windows로 복사했습니다.그libeay.dll
그리고.libssl.dll
파일도 보관소에 있었습니다.c:\windows에 있을 때 이 문제가 있었습니다.그것들을 제거하는 것은 즉시 그것을 고쳤습니다.따라서 이러한 .DLL이 경로 어딘가에 있는지 확인하십시오. VS는 예상되는 버전을 사용하는 대신 다른 소프트웨어 버전을 선택할 수 있습니다.
Angel Blue Sky의 답변은 저에게 부분적으로 효과가 있었습니다.4단계 후 Git 글로벌 구성을 정리하기 위해 다음과 같은 추가 라인을 실행해야 했습니다.
git config --global credential.helper wincred
git config http.sslcainfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"
git config --global --unset core.askpass
git config --global --unset mergetool.vsdiffmerge.keepbackup
git config --global --unset mergetool.vsdiffmerge.trustexitcode
git config --global --unset mergetool.vsdiffmerge.cmd
git config --global --unset mergetool.prompt
git config --global --unset merge.tool
git config --global --unset difftool.vsdiffmerge.keepbackup
git config --global --unset difftool.vsdiffmerge.cmd
git config --global --unset difftool.prompt
git config --global --unset diff.tool
그리고나서git config -l
는 다음 해야 합니다
core.symlinks=false
core.autocrlf=false
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=xxxxxxxxxxxx
user.email=xxxxx@xxxxxx.xx
credential.helper=wincred
core.bare=false
core.filemode=false
core.symlinks=false
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
remote.origin.url=https://xxxxxx@bitbucket.org/xxx/xxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.identityserver.remote=origin
branch.identityserver.merge=refs/heads/identityserver
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
을 합니다.git status
그리고.git fetch
명령행에서 작동하는지 확인하는 명령입니다.
그런 다음 Visual Studio로 이동하면 저장소가 다시 돌아와야 하며 모든 동기화/푸시/풀이 문제 없이 작동합니다.
Windows용 Git의 마지막 버전을 설치한 후에는 편집할 구성 파일을 열어야 합니다.
git config --global --edit
클릭, 모든 설정 제거, 클릭, 입력:wq
저장할 수 있습니다.
이제 유효한 사용자가 있는 Bash 또는 IDE로 저장소를 복제할 수 있습니다.
제 경우에는 여기에 나와 있는 답변 중 일부에 따라 Git를 제거하는 것처럼 극단적인 작업을 수행할 필요가 없었습니다. Visual Studio 대신 명령줄을 사용하면 되었습니다.
열어 보세요.cmd
솔루션의 근본적인 위치에서 다음을 입력합니다.
git pull
그러면 문제가 무엇인지 정확히 알 수 있습니다.제 경우에는 덮어쓸 변경사항이 커밋되지 않았으며 계속하기 전에 변경사항을 커밋해야 한다고 말했습니다.
이 작업을 수행한 후 풀에 성공하여 병합 도구에서 충돌을 해결할 수 있었습니다.
TLDR
Visual Studio 대신 명령줄을 사용하여 보다 완벽한 오류 메시지를 표시합니다.
저도 비슷한 문제를 겪고 있었습니다.Visual Studio 2017에서는 기본 옵션을 사용하여 문제를 해결했습니다.
저는 마스터 브랜치만 가지고 있습니다.마스터에서 오리진/마스터로 기본 재배치(같은 분기에 대한 평균)하고 기본 재배치를 클릭합니다.기본 재배치를 수행하기 전 상태는 변경 사항을 커밋했지만 로컬 지점 기반과 Git 코드 기반이 동기화되지 않았기 때문에 푸시/동기화할 수 없습니다.
새로운 복사본을 복제할 수 있도록 로컬 저장소를 삭제하여 문제를 악화시켰습니다.새로운 오류가 발생했습니다. "git cannot found Git failed with fatal error.fatal: 저장소 'xyz'를 찾을 수 없습니다."
저는 제가 검색하는 모든 제안을 해결책 없이 시도했습니다.다음과 같은 간단한 단계가 저에게 효과가 있었고 저는 그것을 가능한 해결책 목록에 추가하고 있습니다.
git config --get http.dll 결과는 http://google.com:80 입니다.
이건 옳지 않아요 그래서 저는 그것을 없앴습니다.
git config --global --unset http.dll
시도:
제어판 -> 사용자 계정 -> 자격 증명 관리자에서 VS의 모든 인스턴스를 닫은 후 TFS 서버에 대한 계정 삭제
참조: https://developercommunity.visualstudio.com/content/problem/142173/after-changing-domain-password-couldnt-connect-to.html
언급URL : https://stackoverflow.com/questions/42667928/visual-studio-2017-git-failed-with-a-fatal-error
'programing' 카테고리의 다른 글
SqlPlus SP2-0734: 오류 (0) | 2023.07.07 |
---|---|
웹 상대 경로로 돌아가는 절대 경로 (0) | 2023.07.07 |
작성자에게 최소 파일을 설치하도록 지시하는 방법 (0) | 2023.07.07 |
개체를 저장할 때 SpringBoot JPA@CreatedDate@LastModifiedDate가 채워지지 않음 (0) | 2023.07.07 |
투명 이미지 버튼을 사용하는 방법:안드로이드 (0) | 2023.07.07 |