단말기에서 잘못된 사용자와 git 푸시
git과 단말기에 문제가 있습니다.
제가 발행하는 https://i.stack.imgur.com/BZdJo.jpg 을 보여드릴 갤러리가 있습니다.
단말기에서 커밋을 푸시하면 다른 사용자 이름으로 푸시한다고 Git는 말합니다. 그것은 커밋이 전혀 없는 조직(내 회사)의 사용자이며 아무에게도 속하지 않는 것 같습니다. (갤러리 첫 번째 사진 확인)
하지만 제가 Github을 Mac용으로 사용할 때는 이런 일이 발생하지 않습니다. 피드에서 저는 스스로 푸시된 커밋을 봅니다.
이 문제는 개인 저장소에도 영향을 미칩니다. 단말기가 이 사용자와 함께 해당 저장소에 커밋을 푸시하려고 하기 때문에 해당 저장소에 대한 커밋을 푸시할 권한이 없다고 합니다. (갤러리 두 번째 사진 확인)
그거 알아?이것은 맥용 Github에서도 일어나지 않습니다.
며칠 전에 컴퓨터를 새것으로 바꿨기 때문에 github의 ssh 키를 모두 재설정하고 github에서 Mac용으로 생성한 새 것만 남겨두었습니다. 그래서 어딘가에 유령 사용자/ssh 키가 숨겨져 있다고 생각하지 않습니다. 이 hdd는 새것입니다. (갤러리 세 번째 사진 확인)
내 .gitconfig 파일은 모두 삭제되었습니다. 자격 증명만 있습니다. (갤러리 네 번째 사진 확인)
정말 이해가 안 돼요, 도와줘요, 스택 오버플로, 당신이 내 유일한 희망이에요.
(제 부족한 김프 기술과 스타워즈 참조에 대해 사과드립니다)
ssh-add -l
되며 mac용 github은 입니다.
EDIT2: ssh -T git@github.com
저를 좋은 사용자로 인식합니다.
EDIT3: 몇 번의 테스트 후에 내 단말기가 내 사용자 이름으로 커밋을 수행하는 것처럼 보이지만 다른 단말기로 커밋을 푸시하고, Mac용 Github은 양호한 사용자 이름으로 커밋하고 푸시합니다.이러한 상황은 제가 가지고 있는 모든 보고서(새 보고서도 포함)에서 발생합니다.
EDIT4 : 개인 저장소에서git log --pretty="%h %an %ae"
나의 좋은 사용자 이름을 보여줍니다.
EDIT5: 내 자격 증명을 재정의할 환경 변수의 징후가 없음env
자격 증명 문제가 있는 변수를 설정하려고 해도 계속됩니다.
EDIT6: 사용자를 강제로 다음 경로로 이동시키면 정상적으로 작동합니다./.git/config
저장소에 대한 정보를 제공하지만 좋은 옵션은 아닌 것 같습니다.http://USER@github.com/USER/REPO.git
EDIT7 : 우리는 나를 위해 커밋을 푸시한 git 사용자를 삭제했고 이것은 또 다른 오류를 가져옵니다.remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
최종 편집: 홈브루가 있는 깃을 설치하고 입력했습니다. git config --global push.default simple
이제는 사용자에게 강요하지 않고도 제 자격 증명이 필요합니다.이상하네.모두들 도와줘서 고마워요, 당신들은 좋은 사람들이에요!
저는 방금 직장에서 이런 문제를 겪었습니다.mac과 함께 제공되거나 xcode 캐시를 설치할 때 제공되는 빌드 비트는 키 체인에 자격 증명을 가져옵니다.제가 해결할 수 있는 방법은 다음과 같습니다.
키 체인 액세스 시작(cmd + 공간을 통해 스포트라이트 시작, 키 체인 입력, Enter 키 누르기)
왼쪽 상단의 키 체인에서 "로그인"을 선택합니다. 왼쪽의 범주에서 "암호"를 선택합니다.
"github"이라는 이름을 찾아서 삭제합니다.
GitHub은 git의 설정이 아닌 보이는 ssh 키로 사용자를 식별합니다.
따라서 개인 계정에서 푸시를 시도할 때는 회사 계정의 SSH 키가 키 링에 없는지 확인해야 합니다.
사용하다ssh-add -l
하고, 키링에어키있확인합니다는지가떤▁to다확▁which▁determine니▁are합인▁andring,▁key있▁keys는.ssh-add -d <keyfile>
키링에서 키를 제거하려면, 작업을 전송한 경우 'ssh 키'를 제거합니다.~/.ssh/config
.
NB: GitHub은 여전히 이메일만을 기반으로 커밋을 식별합니다.
Windows 10을 사용하고 있는데 오늘 같은 문제가 발생했습니다.이 경우 다른 사용자에 대한 자격 증명이 Windows 자격 증명 관리자에 의해 저장되었습니다. 명령으로 삭제합니다.git config --global --unset credential.helper
도움이 되지 않았습니다.아래의 방법에 따라 Windows에서 항목을 수동으로 삭제해야 했습니다.
시작 --> 제어판 ---> 사용자 계정 ---> 자격 증명 관리 ---> Windows 자격 증명
그런 다음 git:https://github.com 과 같은 항목을 검색하여 제거합니다.그 후에는 잘 작동합니다.
실행됩니다.killall ssh-agent
합니다.ssh-add ~/.ssh/id_4shameer
했을 때 하는 데 이 될 것입니다.ERROR: Permission to user/repo-git.git denied to username.
내 단말기가 내 사용자 이름으로 커밋을 수행하는 것처럼 보이지만 다른 단말기로 커밋을 푸시합니다.
작성자 및 커밋 이름과 전자 메일(GitHub에 중요함)은 다음에서 파생됩니다.
git config user.name
git config user.email
그러나 및 에서 언급한 것처럼 이러한 값은 환경 변수에 의해 재정의될 수 있습니다.
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
그래서 이 변수들을 다시 한 번 확인해 보세요.
사용자를 강제로 입력하면 정상적으로 작동합니다.
.git/config
저장소에 있는 것처럼 보이지만 그건 좋은 선택이 아닌 것 같아요.
하지만 그것은 좋은 해결책이 될 것입니다.
URL을 user로 합니다.https URL은 URL과 동일합니다.
http://USER@github.com/USER/REPO.git
다른 사용자가 제공한 모든 훌륭한 옵션에도 불구하고 이 문제를 해결할 수 있는 유일한 방법은 git를 완전히 다시 설치하고 입력하는 것이었습니다.git config --global push.default simple
좋은 자격 증명을 다시 쓰기 위해.
정말 골치 아픈 일이군요!
문제:
- 평판 허브 생성
- 로컬 시스템에 복제
- 403을 누를 수 없습니다.
git push가 잘못된 사용자를 사용한 이유를 알 수 없습니다.다른 Github 사용자 ID가 몇 개 있습니다.저는 2개의 다른 회사에서 일하고 있으며 학생증도 가지고 있습니다.
저는 맥 작업을 하고 있습니다.이것이 제가 마침내 한 일입니다.
자격 증명을 삭제합니다.조력자
- 자격 증명 도우미가 osxkeychain으로 설정된 방법
- 제가 키체인을 시작했을 때, 로그인, 비밀번호를 클릭하고 github을 검색했습니다. 저는 3개의 항목을 찾았습니다.키체인이 어떤 키체인을 사용해야 하는지 어떻게 알 수 있는지 모르겠습니다.
당신은 자격증이 어디에 있는지 알아내야 합니다.도우미가 구성되었습니다.
git config --local credential.helper
git config --global credential.helper
git config --system credential.helper
올바른 무화과 파일을 찾으면 다음과 같이 제거합니다.
git config --global --unset credential.helper
이제 로컬 보고서에서 .git/config 파일을 해킹했습니다.
나는 변했어요
url = https://github.com/aedavids/lab3RotationProject.git
로.
url = https://myGitHubUserId@github.com/aedavids/lab3RotationProject.git
MAC을 사용하는 경우 키체인 액세스로 이동하여 깃 액세스를 원하지 않는 사용자의 항목을 제거합니다.
해결책은 github용 ~/.ssh/config 파일에 항목을 추가하는 것이었습니다.제가 이 일을 해야 했던 이유는:
- 동일한 키를 가진 여러 개의 Github 계정이 있었습니다( 이러지 마십시오!)
- ssh를 사용하여 'git push'를 실행하면 컴퓨터는 기본적으로 id_dll을 가져와 ssh ID로 사용합니다.
- github은 (놀랍게도) 어떤 계정과 충돌할 수 없습니다. 계정이 제시된 키를 기반으로 하기 때문에, 하나 이상의 계정에 연결되면 이와 같은 고통이 발생합니다.살인자는, 오랫동안, 저는 이것을 모면하고 있었고, 모든 것이 잘 해결되었다는 것입니다.
추가한 항목은 다음과 같습니다.
Host github.com
Hostname github.com
Port 22
User waterproofpatch
IdentityFile ~/.ssh/id_rsa_waterproofpatch
계정에 고유한 새 키를 id_rsa_waterproofpatch로 생성했습니다.my ssh 구성의 이 항목은 github.com 에 대한 연결을 위해 이 키를 표시하도록 지정합니다.
또 다른 해결책은 다른 계정에 로그인하여 중복된 ssh 키를 삭제하는 것이었습니다.
sshurl에 대한 디버그 및 수정 방법입니다.
먼저 ssh를 통해 어떤 사용자인지 확인합니다.
ssh -T git@github.com
안녕하세요.
<your_current_github_username>
인증에 성공했지만 GitHub에서 셸 액세스를 제공하지 않습니다.
의 "GitHub"을 사용하여 합니다.your_current_github_username
구성된 모든 SSH 키 확인: https://github.com/settings/keys
방법 1:
키를니다에서 키를 합니다.your_current_github_username
방법 2:.
가 연된키와 합니다.
your_current_github_username
cat ~/.ssh/id_*.pub
정
id_rsa
대상 github 사용자 이름의 SSH 키입니다. 다른 파일 이름일 수 있습니다.eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa
방법 3:
수 에는 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""를 사용하여 새 ssh 키를 생성합니다.ssh-keygen
다음 위치에 배치합니다.~/.ssh/id_new_keyyyy
eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_new_keyyyy
저도 비슷한 문제가 있었는데 알고 보니 공용 키 파일에 마지막 줄에 제 이메일 주소가 포함되어 있었습니다.그것은 내 구성의 사용자 설정을 무시하는 것처럼 보였습니다..pub 파일에서 이메일을 제거하고 repo에 다시 업로드하자 마자 올바른 사용자를 사용하여 Git이 연결되었습니다.
이것은 약 2년 동안 저를 짜증나게 했고 마침내 오늘 시간을 내서 그것을 알아냈습니다.내가 강제로 푸시한 모든 것은 GitHub 웹의 다른 사용자에 의해 푸시되거나 CircleCI 웹의 다른 사용자에 의해 트리거된 것으로 나타납니다.범인은 나의 지역 저장소가 게으르게 만들어졌기 때문인 것처럼 보였습니다.Code
>Open with GitHub Desktop
웹에서제 에서, HTTPS를 했습니다.
저와 같은 경우에는 리모컨이 다음과 같이 보여야 합니다.
> git remote -v
origin https://github.com/USERNAME/REPO.git (fetch)
origin https://github.com/USERNAME/REPO.git (push)
upstream https://github.com/ORG/REPO.git (fetch)
upstream https://github.com/ORG/REPO.git (push)
그러면 나는:
- 뛰었다
git config --system --unset credential.helper
HTTPS 자격 증명을 지우려면 이 작업이 필요하지 않을 수 있으므로 저장된 자격 증명이 잘못되었거나 유효하지 않은 경우를 제외하고 건너뛸 수 있습니다.- Mac OS에서 키체인 유틸리티 응용 프로그램을 열고 로그인 키체인에 저장된 개별 GitHub.com 인터넷 비밀번호 자격 증명을 보거나 삭제할 수도 있습니다. 증명에 이 이격자증명대한액제이탭있름다작터는아표니됩시이콘이널미은이에는어세에스▁name▁icon▁the라는 작은 터미널 이 표시됩니다.
git-credential-osxkeychain
'항상 액세스 허용....' - 또는 git credential-osxkeychain을 통해 터미널에서 게임을 할 수 있습니다.
- Mac OS에서 키체인 유틸리티 응용 프로그램을 열고 로그인 키체인에 저장된 개별 GitHub.com 인터넷 비밀번호 자격 증명을 보거나 삭제할 수도 있습니다. 증명에 이 이격자증명대한액제이탭있름다작터는아표니됩시이콘이널미은이에는어세에스▁name▁icon▁the라는 작은 터미널 이 표시됩니다.
- 를 했습니다.
ssh -T git@github.com
내가 인증되었다는 것을 확인하는 응답이 인쇄되었습니다. - 포크의 SSH URL을 사용하도록 원격을 재구성했습니다.
> git remote remove origin
> git remote add origin git@github.com:USERNAME/REPO.git
> git remote remove upstream
> git remote add upstream git@github.com:ORG/REPO.git
# Shorter alternative:
> git remote set-url origin git@github.com:USERNAME/REPO.git
> git remote set-url upstream git@github.com:ORG/REPO.git
다음 풀을 누르면 업스트림 추적 분기를 다시 설정하라는 메시지가 표시될 수 있습니다(사용자가 잘 모르는 경우 오류 메시지가 이에 대한 구문을 인쇄합니다).
강제 푸시 이벤트는 자격 증명을 통해 사용자에게 귀속되며 HTTPS 클론에서 푸시할 때 사용자를 식별하는 데 문제가 있을 수 있습니다. 푸시가 사용자에게 귀속될 수 없을 때 완전히 망가진 경험을 방지하기 위해 GH 측에서는 이벤트를 귀속시킬 조직 사용자를 임의로 선택하는 논리가 있을 것입니다.작성자가 설정되었는지 확인하는 것과 같은 작업(커밋 로그에 내 사용자 정보가 작성자로 완벽하게 표시되었음에도 불구하고)은 저에게 효과가 없었습니다. 푸시에 다양한 작성자의 새 커밋이 많이 포함되어 있을 수 있기 때문에 이 문제를 해결할 수 없습니다.이 이야기의 교훈은 항상 SSH를 사용하는 것입니다.
참고 사항:자동으로 HTTPS 저장소 URL을 SSH 저장소 URL로 바꾸도록 Git 구성을 업데이트하라는 모든 솔루션을 주의해야 합니다.개인 저장소의 홈브루 탭(2021년 현재 여전히 HTTPS만 지원)과 같이 접근 방식이 매우 혼란스럽게 깨질 수 있는 특정 사항이 있습니다.
에서 이 합니다. Windows에서는 다음 경로로 이동합니다.
> 계정 --> 관리 --> Windows 자격 증명 --> Windows 자격 증명 --> Windows 계정 --> Windows 계정
git:https://github.com 에서 자격 증명 제거
그런 다음 동일한 위치에서 코드를 푸시할 GitHub 계정 사용자 이름과 암호를 추가합니다.
이제 추가한 사용자 이름에서 git가 푸시되는지 확인하려면 git bash에 다음 명령을 입력합니다.
git config user.name
GIT가 푸시할 사용자 이름이 표시됩니다.사용자 이름이 정확하면 문제가 해결됩니다.
이 방법으로는 문제가 해결되지 않았습니다. 이전 계정의 사용자 이름이 여전히 표시되어 제거되었습니다.
이제 gitbash에 다음 명령을 입력할 계정의 사용자 이름과 이메일 ID를 입력합니다.
git config --global user.name your_username
git config --global user.email your_emaiid
이제 사용자가 변경됩니다.
코드를 누르기 전에 다음 명령을 사용하여 사용자 변경 여부를 다시 확인할 수 있습니다.
git config user.name
@bolun-zhang의 코멘트는 제가 마침내 이것을 해결하는 데 도움이 되었습니다.
"github은 git의 어떤 설정도 아닌, 보이는 ssh 키로 당신을 식별합니다."
IMHO, 이것은 부정확하고 매우 오해의 소지가 있는/잘못된 것입니다.SSH를 사용하여 github과 상호 작용하는 경우 SSH에서 사용 권한을 확인합니다.그러나 github은 SSH 키에 관계없이 e-메일 gitconfig를 기반으로 커밋의 작성자를 결정합니다.
저에게는, 이것이 완전히 정확한 것으로 밝혀졌습니다.내가 설정한 것과 상관없이.~/.ssh/config
사용하는 경우에도:export GIT_SSH_COMMAND="ssh -i ~/.ssh/some-key"
대체 사용자 이름이 여전히 선택되고 있습니다.
은 문와해책은결제▁that은▁the▁was책해▁and였습니다.git config user.email
다른 github 사용자의 대체 전자 메일과 일치했습니다.
다른 github 사용자로부터 해당 이메일을 제거한 후 커밋이 정상적으로 작동했습니다.
궁극적으로 @venkatesh-murugesh가 지적했듯이 다음을 설정해야 합니다.
git config user.email
커밋을 소유해야 하는 github 사용자 계정의 전자 메일 주소와 일치합니다.
물론, 당신은 사용하기를 원할 것입니다.~/.ssh/config
또는GIT_SSH_COMMAND
SSH가 올바른 키를 사용하고 있는지 확인합니다.테스트 대상:
ssh -T git@github.com
win10에서 새 ssh 키를 새 git repo에 추가하는 단계:
- ssh 키 쌍을 생성하여 .ssh 디렉토리에 저장합니다.퍼티젠은 기본적으로 재미있는 키 유형을 생성할 수 있기 때문에 올바른 형태로 만들었다고 생각합니다.
- ssh 디렉토리에 구성 파일이 있어야 합니다(아직 존재하지 않는 경우 .ssh/config로 추가).
Host github.com // 이것은 기본 기본 키에 대한 것입니다. 주석을 제거하십시오.
.com 은 github.com 입니다.
/git
는 파일 입니다. 를 제거합니다. ~/.ssh/id_rsa // 입니다. 주석을 제거합니다.
는 호스트 이름입니다.
.com 은 github.com 입니다.
/git
ID는 파일 ssh입니다. 을 제거합니다. ~ /.ssh/id_rsa_second-key // 새키 의 주석 제거
- 두 번째 키가 필요한 저장소에서 다음을 수행합니다.
config user. git config user.name username-from-second-account
config user.econd-account 파일입니다.
- 이제 새 계정에서 이전에 설정한 호스트 닉네임과 사용자 이름 및 repo 이름을 사용하여 저장소의 오리진을 변경합니다.
origining it ㅠㅠㅠㅠㅠㅠㅠ
add origin /premitory-name. remote add origin git@second-host-premitory-you-mitory:from-second-account/premitory-name.gitory
당신은 가도 좋습니다.
저는 ssh URL 대신 Github repo의 https URL을 사용하여 Github 프로젝트 페이지에 가서 https URL을 클립보드에 복사한 다음 아래의 두 번째 명령에 붙여넣었습니다.
git remote rm origin
git remote add origin https://[...]
저의 경우, 문제는 제가 사용하고 있다는 것이었습니다..netrc
접근하기 위해github.com
다른 사용자의 토큰으로 구성되었습니다.
machine github.com login <another-user-token>
새 GitHub 페이지를 새 계정으로 이동하려고 할 때 이 문제를 해결하는 데 6시간이 걸렸습니다.
config user.name 및 user.email을 설정한 후에도 기본 계정으로 설정됩니다.
이는 ssh 키가 기본적으로 id_rsa(내 기본 계정)로 설정되기 때문입니다.
실행해야 하는 새 계정을 사용하려면:
ssh-add ~/.ssh/my_new_key
그러면 Git가 누를 때 새 키를 사용하게 됩니다.
Visual Studio Code 내에서 Remote SSH를 통해 git을 실행하는 동안 비슷한 문제가 발생했습니다.되며 VSCode를 설정합니다.$GIT_ASKPASS
대본대로 ($HOME/.vscode-server/bin/*/extensions/git/dist/askpass.sh
하여 자격 을 설정를 사용하여 자격 증명을 설정/수정합니다.
설정을 통해 이 값을 재정의할 수 있습니다.git.terminalAuthentication
false
Authentication하고 ("Git: 터인증널제다니합거로으일효적미그과명고리▁the▁(다제)니")를 으로 제거합니다.$GIT_ASKPASS
환경 변수를 입력합니다.
URL이 수 . 다음과 같이하실 수 . 다음을 사용하여 확인할 수 있습니다.git remote -v
.
- 불량:
git@github.com:<user>/<repo>.git
- 정답:
git@<user>:<user>/<repo>.git
교체 방법:
git remote remove origin
git remote add origin git@<user>:<user>/<repo>.git
계정을 사용자는 여github ▁account▁usedub▁main▁i▁in▁the▁were▁set,▁and▁g▁on▁user▁accounts여▁were러▁requests계설▁despite▁while▁g▁several메ithith▁that▁same▁issueith▁the▁faced▁using--global
배열.
은 로컬 입니다. 따서간해방로법컬것사입는다니용하구성을은결단한라▁so다것입.git config --local user.email second_account_account
그것으로 저는 문제를 해결했습니다.
키 체인을 지우는 것이 도움이 되지 않았습니다...해야만 했어요ssh-add -D
를 다시 는 키 다 추 합 니 가 다 시 를ssh-add <keyfile>
MacOS High Sierra에서 id_rsa 및 id_rsa.pub 파일을 제거(또는 *.bak으로 이름 변경)하여 이 문제를 해결했습니다.여기서 나온 아이디어.
~/.ssh/config에 적용해야 하는 사용자 지정 호스트 리디렉션이 있지만 두 파일의 이름을 바꾸기 전에 잘못된 사용자를 사용했습니다.
그것이 저에게 효과가 있었습니다.
- .git-credentials 내부의 인증 정보 변경
- .gitconfig 내부의 글로벌 user.name 및 user.email 변경
레포를 제거하고 다시 추가하는 데 도움이 되었습니다.
git remote rm origin
git remote add origin git@github.com:fguillen/MyApp.git
@user542833이 말하기를 Windows 캐시 때문에 Windows에서 Github 자격 증명을 제거해야 하기 때문에 Git를 제거한 후에도 Windows 10에서 동일한 문제가 발생합니다.Credential Manager
합니다.
커밋 자체에 다른 저자가 필요했기 때문에 제가 어떤 노력을 해도 github에서 이름을 바꿀 수 없었습니다.
git commit --message --author="작성자 이름 email@address.com "
이제 커밋에 올바른 계정이 표시됩니다.
내 쪽에서도 정확히 같은 문제가 있었습니다.
솔루션은 간단했습니다.
git 파일을 로컬또글성구파일을열제다공다합니음을고는로벌을 합니다.[author]
명시적으로 이메일을 보냅니다.
이 명령을 사용하면 다른 사용자 이름으로 git을 쉽게 푸시할 수 있습니다.
git add .
git commit -m "initial commit"
git config --local credential.helper ""
git push https://github.com/youraccount/repo.git --all
제 경우 github CLI가 수정되었습니다.
gh auth login
그러면:
- GitHub.com
- 네.
- HTTPS
- 네.
- 웹 브라우저로 로그인
언급URL : https://stackoverflow.com/questions/21615431/git-pushes-with-wrong-user-from-terminal
'itsource' 카테고리의 다른 글
npm build는 build라는 이름의 스크립트를 패키지에서 실행하지 않습니다.제이손 (0) | 2023.08.25 |
---|---|
CMake / G++ / LD가 다른 공유 객체에 대해 공유 객체를 연결하도록 강제하는 방법 (0) | 2023.08.25 |
테이블에 최소 높이를 사용할 수 있습니까, tortd? (0) | 2023.08.25 |
Facebook 좋아요 알림 추적(DB Design) (0) | 2023.08.25 |
mariadb 드라이버가 있는 Springboot 2.5.x 이상은 java.sql을 제공합니다.SQL 비일시적 연결예외: (vmx=11812758) 연결이 닫혔습니다. (0) | 2023.08.25 |