code

git: 'incential-cache'는 git 명령이 아닙니다.

starcafe 2023. 5. 8. 22:22
반응형

git: 'incential-cache'는 git 명령이 아닙니다.

암호 캐싱에 대한 부분을 포함하여 다음 지침을 따릅니다.지시가 잘못된 것 같아요. 매번 제가git push origin master다음 오류가 발생했습니다.

git: 'credential-cache' is not a git command. See 'get --help'.

사용자 이름과 비밀번호를 입력해야 합니다.한 저는 오류 가 다시 , "" "" "" "" "" "" ""의 .git push.

다음은 내 .gitconfig 파일의 내용입니다.

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

Git를 설치하고 Git Bash를 실행한 후 입력한 내용은 다음과 같습니다.

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

제발 도와주세요.정말 답답합니다!

블로그에서 찾은 정보:

이 [git-credential-cache]는 git-credential-cache가 Unix 소켓을 통해 통신하기 때문에 Windows 시스템에서는 작동하지 않습니다.

Windows용 Git

msysgit가 Windows용 Git로 대체되었기 때문에 Windows용 Git을 사용하는 것이 이제 가장 쉬운 옵션입니다.Git for 윈도우즈 설치 관리자(예: 2.7.4)의 일부 버전에는 설치 중 Git 인증 정보 관리자를 사용하도록 설정하는 확인란이 있습니다.다음은 스크린샷입니다.

Git For 윈도우즈 2.7.4 설치 마법사의 스크린샷

아직도 msysgit을 사용하고 있습니까?formsysgit 버전 1.8.1 이상

wincred도우미가 msysgit 1.8.1에 추가되었습니다.다음과 같이 사용합니다.

git config --global credential.helper wincred

1.8.1 이전 버전의 경우

먼저 git-credential-winstore를 다운로드하여 gitbin 디렉토리에 설치합니다.

다으로포디다을는하함렉확를다니인합리토음음이 포함된 합니다.git.cmd경로 환경 변수에 있습니다.기본 디렉터리는 64비트 시스템의 경우 C:\Program Files(x86)\Git\cmd이고 32비트 시스템의 경우 C:\Program Files\Git\cmd입니다.이것을 테스트하는 쉬운 방법은 명령 프롬프트를 시작하고 다음을 입력하는 것입니다.gitgit 명령 목록이 없으면 올바르게 설정되지 않습니다.

마지막으로 명령 프롬프트를 시작하고 다음을 입력합니다.

git config --global credential.helper winstore

또편집수다있니습할을 할 수도 있습니다..gitconfig수동으로 파일:

[credential]
    helper = winstore

이렇게 하면 Windows 인증 정보 관리자를 통해 Git 인증 정보를 관리할 수 있습니다. Windows 인증 정보 관리자는 Windows 제어판을 통해 가져올 수 있습니다.

처럼 .git이제 와 함께 제공됩니다.wincredWindows 서즉사능가용(msysgit):

git config --global credential.helper wincred

참조: https://github.com/msysgit/git/commit/e2770979fec968a25ac21e34f9082bc17a71a780

  1. 려달을 합니다.git config --global credential.helper wincred
  2. 이동 위치:CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL
  3. 클하여자증추에서 자격 합니다.Internet or network address: 더하다git:https://message}.github.com
    User:{name}
    Password:{Password}

Windows 7에서 Aptana Studio3를 사용하는 동안 이 문제에 직면했습니다.이것은 저에게 도움이 되었습니다.

git config --global credential.helper wincred

>의 경우(git 전버 >=1.7.10으로 ):git --version), 다음 방법을 사용합니다(참조 참조).

Windows:

git config --global credential.helper wincred

Mac:

git config --global credential.helper osxkeychain

유사한 오류는 다음과 같습니다.'credential-wincred' is not a git command

일반적인 답변과 일반적인 답변은(는)

wincred이상 유지 관리되지 않는 프로젝트 git-incential-winstore용입니다.

마이크로소프트 오픈 소스에 의해 관리되는 Git-Credential-Manager-for-Windows로 대체되었습니다.

위 링크에서 zip 파일로 릴리스를 다운로드하고 내용을 추출합니다.

\cygwin\usr\libexec\git-core

(또는)\cygwin64\usr\libexec\git-core그렇더라도)

활성화합니다. ( " " " " (으 " (으 " (으)로 합니다..gitconfig - (실행 - 행실:

git config --global credential.helper manager

사용방법

추가 구성이 필요하지 않습니다.

자격 증명이 필요할 때 [자동]으로 작동합니다.

예를 들어, Azure DevOps로 푸시하면 창이 열리고 oauth2 흐름을 초기화하여 토큰을 가져옵니다.

참조:

저는 이 문제를 제거함으로써 해결했습니다.credential특정 프로젝트의 구성에서 섹션:

  • 방금 입력한 내용:git config -e
  • 편집기 안에서 저는 전체 섹션을 제거했습니다.

이렇게 하면 다음과 같은 성가신 메시지가 제거됩니다.

git: 'credential-cache' is not a git command. See 'git --help'.

이것은 저에게 효과가 있었습니다.

git 자격 증명-manager-core 구성

이제 Windows에서 작은 exe를 두 번 클릭하여 Git 암호 캐싱을 설정하는 훨씬 쉬운 방법이 있습니다.프로그램은 여전히 다음을 기반으로 합니다.git-credential-winstore프로젝트가 깃허브에서 http://gitcredentialstore.codeplex.com/ 로 이동되었음에도 불구하고, 투표된 상위 답변에 의해 언급되었습니다.

다음 블로그 게시물에서 exe(및 Mac용 바이너리)를 다운로드할 수 있습니다. https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage

다른 Ubuntu에서도 않고 Ubuntu에서 오류가 했습니다).git: 'credential-cache' is not a git command.), Git 1.7.9 이상에서만 이 기능을 사용할 수 있다는 을 알게 될 때까지.

Ubuntu의 이전 배포판(Natty; 저는 고집스러운 Gnome 2 사용자입니다)에 있는 버전은 1.7.4.1 버전이었습니다.다음 PPA를 사용하여 업그레이드했습니다. https://launchpad.net/ ~git-core/+sys/ppa

마스터 브랜치에서 "git pull" 명령을 사용하려고 할 때도 비슷한 오류가 발생했습니다.

Error: "git: 'credential-manager' is not a git command. See 'git --help'." 

아래 두 개의 명령을 실행하여 문제가 해결되었습니다.

$ git config --global --unset credential.helper
$ git config credential.helper store

다른 사람들을 위해 이 문제를 해결하기 위해 - 새 github 저장소를 설정하는 방법에 대해 귀여워하려고 여기에 도착했지만, 설정 페이지별 자격 증명 도우미는 저장소를 복제하지 않으면 작동하지 않습니다.

"팁: 자격 증명 도우미는 HTTPS 리포지토리 URL을 복제할 때만 작동합니다.SSH 저장소 URL을 대신 사용하는 경우 SSH 키가 인증에 사용됩니다.이 가이드에서는 SSH 키 쌍을 생성하고 사용하는 데 도움이 됩니다."

대화에 조금 늦었다는 것은 알지만 정확히 같은 문제가 발생했습니다. Git 구성에서 항목 자격 증명이 두 개 있었습니다.

내 .gitconfig 파일에서

[credential]
helper = cached
[credentials]
helper = wincred

수정: 내 .gitconfig 파일을 아래 설정으로 변경했습니다.

[credential]
helper = wincred
[credentials]
helper = wincred

이전 Ubuntu Linux 시스템의 경우:

git config --global credential.helper store

말 그대로 이걸 겪었어요!

  1. Git Credential Manager Core 다운로드 및 설치: https://github.com/microsoft/Git-Credential-Manager-Core#download-and-install
  2. Account Settings > Emails깃허브에서.다음과 같은 것을 확인해야 합니다.
  3. 강조 표시된 전자 메일은 개인 전자 메일을 비공개로 유지하기 위해 생성된 시스템입니다.이제 복사하여 다음 단계에서 사용합니다.
  4. Git 구성:
 git config --global user.name "yourusername"
 git config --global user.email "1234567+yourgithubusername@users.noreply.github.com"
 git config --global credential.helper cache

이제 git 명령이 다시 작동합니다.

보조 노트:Linux Mint를 사용하고 있습니다.YMMV

추가 참고 사항:Git Credential Manager Core v 2.0.567에 Debian 백업에 버그가 있습니다.새 버전이 출시되기 전에 v2.0.474를 설치하십시오.

또 다른 효율적인 해결 방법은 다음과 같습니다.

1 - 제어판으로 이동하여 다음과 같이 github.com 에 대한 자격 증명을 추가합니다.

GitHub에 대한 Windows 자격 증명

2 - CMD로 이동하고 다음 명령을 입력합니다.

  • a - cd %localappdata%\아틀라스어\원본 트리\git_local\mingw32\bin\
  • b-git.exe config --edit --system
  • c- 마지막 줄을 도우미 = 관리자로 수정합니다.
  • d- CTRL+C를 클릭한 다음 :wq를 입력하고 Enter 키를 눌러 새 구성 파일을 저장합니다.

업데이트 구성: 도우미 = 관리자

이것은 나에게 딱 맞습니다!

나는 세 가지 다른 것이 있었습니다.helper= 중 비어 .gitconfig의 [incential] 섹션에 있는 항목 중 하나가 비어 있습니다. 두 하고 나지두개삭보중관는하고하제머를중▁the▁deleting는▁and▁keeping보관helper=wincred저를 위해 문제를 해결했습니다.

BTW: 이유는 모르겠지만, 저는 제 .gitconfig를 바로 찾지 못했습니다.그때 C에서 발견했습니다.\Users\사용자 이름.

이 경우 이 명령으로 문제가 해결되었습니다.

git config --global credential.helper manager-core --replace-all

새로운 net-core 자격 증명 관리자를 사용할 수 있습니다.

2022년 10월 Git 2.38.1+:
GCM 코어 없음

warning:git-credential-manager-core로 이름이 변경되었습니다.git-credential-manager
warning자세한 정보는 https://aka.ms/gcm/rename 를 참조하십시오.

Git for Windows(2.38.1.windows.1, 2022년 10월)와 함께 패키지화된 현재 자격 증명 도우미는 다음과 같습니다.

 git config credential.helper
 manager

 where git-credential-manager-core
 c:\Program Files\Git\mingw64\bin\git-credential-manager.exe

10월 10일이었습니다.manager-core.

GCM(Git Credential Manager)이 종료된 후:microsoft/Git-Credential-Manager/

GCM(Git Credential Manager)은 에 구축된 안전한 Git 자격 증명 도우미입니다.윈도우즈, macOS 및 리눅스에서 실행되는 NET.모든 주요 소스 제어 호스팅 서비스 및 플랫폼에 다중 인증을 포함한 일관되고 안전한 인증 환경을 제공하는 것을 목표로 합니다.

GCM은 Azure DevOps, Azure DevOps 서버(이전의 Team Foundation Server), Bitbucket, GitHub 및 GitLab을 알파벳 순으로 지원합니다.
Git의 기본 제공 자격 증명 도움말과 비교해 보십시오(Windows:wincred macOS:osxkeychain Linux:gnome-keyring/libsecret 이름 사용자 이름/암호에 대해서만 단일 요소 인증 지원을 제공합니다.

GCM은 두 가지를 모두 대체합니다.윈도우즈용 NET Framework 기반 Git Credential ManagerMac 및 리눅스용 Java 기반 Git Credential Manager.

최신 릴리스 v2.0.866(2022년 11월)이 삭제됩니다.-core항목 실행 파일의 접미사(PR 551)

항목 을 " 기항실파이시다작니합름을"에서 변경합니다.git-credential-manager-core(.exe)간단히 말하면git-credential-manager(.exe)Git for Windows 프로젝트에서 이전 GCM4W가 옵션으로 제거되었기 때문입니다(그리고 GCMC 프로젝트의 이름이 변경되었습니다).

정도 돕기 이름 "sim/"를합니다.git-credential-manager-core(.exe)새 버전으로 업데이트하지 않은 소비자를 위한 것입니다.


Git 2.34 (2021년 4분기)에서는 유닉스 소켓이 Git for Windows에서 고려되기 시작했습니다.

커밋 bb390b1, 커밋 245670c, 커밋 0fdcfa2(2021년 9월 14일)carenas 참조.
(주니오 C 하마노에 의해 합병 -- -- commit c2e7990, 2021년 9월 23일)

git-compat-util윈도우즈의 유닉스 소켓에 대한 선언 포함

사인 오프 바이: 카를로 마르셀로 아레나스 벨론

윈도우즈 10 릴리스 1803 및 윈도우즈 서버 2019부터 사용할 수 있습니다.

NO_UNIX_SOCKETS에서는 Windows 빌드의 기본값으로 사용됩니다. Windows 7(윈도우 7)까지의 릴리스와 역호환성을 유지해야 하지만 그렇지 않은 경우에는 헤더를 포함할 수 있습니다.

도메인이 변경된 후 Azure DevOps 저장소에서도 동일한 문제가 발생했습니다. 즉, from @xy.com to @xyz.com .이 문제를 해결하기 위해 다음 권한을 가진 새 개인 액세스 토큰을 생성했습니다.

코드: 읽기 및 쓰기 포장: 읽기

그런 다음 윈도우즈 자격 증명 관리자를 열고 다음과 같은 세부 정보가 포함된 새 일반 윈도우즈 자격 증명을 추가했습니다.

인터넷 또는 네트워크 주소: "git:{projectname}@dev.azure.com/ {projectname}" - 또는 여기에서 git 저장소 이름을 사용해야 합니다.
사용자 이름: "개인 액세스 토큰"
암호: {생성된 개인 액세스 토큰}

그 후 우리의 모든 GIT 작업은 다시 작동했습니다.이것이 다른 누군가에게 도움이 되기를 바랍니다!

Mac에서 다음 명령을 실행합니다.

git config --global credential.helper osxkeychain

저의 원래 답변은 저 자신에게도 그다지 유용하지 않은 것으로 밝혀졌습니다. 그래서 저는 그것을 조금 더 조사했고, (조금 복잡하긴 하지만) 해킹을 발견했습니다.

그래서 저는.gitMSYS2를 .credential-cache내 비밀번호를 일시적으로 기억하는 것 (그리고 나는 그런 사용 사례를 본 적이 없습니다.wincred또는 기타 Windows 적용 가능한 접근 방식)

기본적으로, 이를 위해서는 https://github.com/git/git/blob/55144cc/builtin/credential-cache--daemon.c#L239 에서 해킹이 필요합니다.die-그 줄에서, 우리는 계속 진행하고 싶습니다.

그래서, 우선, 우리는 우리가 만들기를 원합니다.gitMSYS2 아래에 있습니다.

  • 문제 1: MSYS2에서 올바른 https://github.com/git/git 을 구축하기만 하면 링크 단계가 실패하고 "src/git/cache.h:1262: 'win32_has_drive_drive'에 대한 정의되지 않은 참조" 및 유사한 메시지가 표시됩니다.

, 우는적인을 .gitMSYS2에서 사용된 것과 같습니다.먼저 버전을 확인합니다.

$ git --version
git version 2.33.0
$ pacman -Ss git | grep installed # msys/git 2.33.0-1 (VCS) [installed]

https://www.msys2.org/wiki/Creating-Packages/, 에 따르면 다음과 같은 작업을 수행할 수 있습니다.

$ git clone "https://github.com/msys2/MSYS2-packages"
$ cd MSYS2-packages/
$ cd git
$ makepkg -sCLf
==> Making package: git 2.33.0-1 (Thu, Sep 23, 2021 12:47:33 PM)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
...
make[1]: Entering directory '/c/src/MSYS2-packages/git/src/git-2.33.0'
make[1]: 'GIT-VERSION-FILE' is up to date.
make[1]: Leaving directory '/c/src/MSYS2-packages/git/src/git-2.33.0'
sed -e '1s|#!.*/sh|#!/bin/sh|' git-subtree.sh >git-subtree
chmod +x git-subtree
make: Leaving directory '/c/src/MSYS2-packages/git/src/git-2.33.0/contrib/subtree'
==> Starting check()...

참고:

  • 이 빌드 프로세스는 먼저 ASCIIDOC/XMLTO 파트로 끝납니다. 예를 들어, 제 컴퓨터에서는 30분 정도 걸립니다.
  • 그러면 결국엔.*** prove ***시간이 더 걸리지만 Ctrl-C로 중단될 수 있으며 빌드된 실행 파일은 지워지지 않습니다.

이제 소스를 해킹하려고 합니다. 참고:

  • 우리가 소스를 해킹하면, 우리는 사용하고 싶지 않습니다.makepkg -sCLf소스 아티팩트와 를입니다.

그래서, 우리는 우리의 해킹을 만듭니다.sed그런 다음 빌드:

$ sed -i 's/die(_(permissions_advice), dir);/fprintf(stderr, "Permissions on cached credentials socket directory %s are too loose, but HACK: going on\\n", dir);/' ./src/git-2.33.0/builtin/credential-cache--daemon.c
$ (cd src/git-2.33.0/; make)
    CC builtin/credential-cache--daemon.o
    LINK git.exe
...
    SUBDIR templates

이 시점에서 해킹은 적어도 3개의 실행 파일로 끝나며, 이는 다음과 같이 확인할 수 있습니다.

$ grep -ao ....HACK........ ./src/git-2.33.0/git-credential-cache--daemon.exe
$ grep -ao ....HACK........ ./src/git-2.33.0/git-credential-cache.exe
$ grep -ao ....HACK........ ./src/git-2.33.0/git.exe

세 가지를 모두 교체한 후에야 이 작업을 수행할 수 있었습니다.

# backup the original files:

$ mv /usr/lib/git-core/git-credential-cache--daemon.exe /usr/lib/git-core/__git-credential-cache--daemon_orig.exe
$ mv -v /usr/lib/git-core/git-credential-cache.exe /usr/lib/git-core/__git-credential-cache__orig.exe
$ mv -v /usr/bin/git.exe /usr/bin/__git_orig.exe
$ mv -v /usr/lib/git-core/git.exe /usr/lib/git-core/__git_orig.exe

# copy over the hacked files:

cp -v ./src/git-2.33.0/git-credential-cache--daemon.exe /usr/lib/git-core/
cp -v ./src/git-2.33.0/git-credential-cache.exe /usr/lib/git-core/
cp -v ./src/git-2.33.0/git.exe /usr/bin/
cp -v ./src/git-2.33.0/git.exe /usr/lib/git-core/

이에서 이고그시서에점리,서▁and에,credential-cacheMSYS2(제한된 시간 동안 암호 캐싱) 작업도 시작했습니다. 시작할 때 해킹된 라인을 덤프하는 것뿐입니다.

$ git pull
Password for 'https://user@git.mysite.com':
Permissions on cached credentials socket directory /home/user/.cache/git/credential are too loose, but HACK: going on
Already up to date.

# second pull, password is cached
$ git pull
Already up to date.

좀 까다롭긴 하지만 효과가 있는 것 같습니다.

PS: 까다로운 점은 제가 원래 교체했다는 것입니다.dieprintfstdout실패했습니다; 보니, 하만그계실패습니다했속것은지다니▁but습실,▁it패;▁out했▁turns▁kept. 알고 보니,stdout 간 통신에 이 것이 대답합니다.ok\0stdout그것은 3바이트입니다; 그래서 해결책은 통지를 인쇄하는 것이었습니다.stderr대신.


(원답):

질문에 정확히 응답하지는 않았지만, 이 질문을 답변으로 문서화하기 위해 찾을 수 있는 가장 적절한 질문이었습니다.

사용합니다git현재 버전이 있는 Windows 10의 MSYS2 아래:

$ git --version
git version 2.32.0

저는 일반적으로 제한된 시간(약 10분 정도) 동안 암호를 캐시한 다음 잊어버리기를 원합니다. 아직 사용하지 않았습니다.wincred또는 해당 사용 사례가 있는 다른 윈도우즈별 자격 증명 관리자.

즉, 자격 증명 관리자를 처음 실행할 때는 문제가 없습니다. 이후에 사용할 때에만 다음과 같은 문제를 해결할 수 있습니다.

$ git push
Password for 'http://user@githost.example.com':
fatal: The permissions on your socket directory are too loose; other
users may be able to read your cached credentials. Consider running:

        chmod 0700 /home/user/.cache/git/credential
fatal: cache daemon did not start:
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
...

기본적으로 은 그서래, 기으로삭, 해은는것다입니제하책결을 입니다.credential디렉토리 - 그 후 자격 증명 캐시 관리자가 처음처럼 실행되고 제한된 시간 동안 암호를 캐시합니다.

$ rm -rf ~/.cache/git/credential


# note below, the very first pull still asks for a password:

$ git pull
Password for 'http://user@githost.example.com':
Already up to date.

# ... but the second pull does not, it uses credentials cache

$ git pull
Already up to date.

요, 나는충좋아히, .:)

편집: 그렇지 않습니다. 이 직후에 다른 탭에서 풀을 시도하면 오류가 다시 발생합니다.

언급URL : https://stackoverflow.com/questions/11693074/git-credential-cache-is-not-a-git-command

반응형