developer tip

git push 명령의 사용자 이름 및 비밀번호

copycodes 2020. 10. 5. 08:05
반응형

git push 명령의 사용자 이름 및 비밀번호


명령에 사용자 이름과 비밀번호를 지정하여 git 저장소를 복제 할 수 있습니다. 예:

git clone https://username:password@myrepository.biz/file.git

푸시 할 때 사용자 이름과 비밀번호를 지정할 수도 있습니까? 예를 들어 running git push origin --all은 암호를 묻는 출력을 출력합니다. 나는 이것을 하나의 명령으로 원합니다.

(키 및 기타 솔루션을 설정하는 기능을 알고 있지만 하나의 명령으로 사용자 이름과 암호를 계속 사용할 수있는 방법이 있는지 알고 싶습니다.) Windows 8.1에서 Git Bash를 실행하고 있습니다.


예, 할 수 있습니다

git push https://username:password@myrepository.biz/file.git --all

이 경우 https://username:password@myrepository.biz/file.git바꾸기 origin의를git push origin --all

에 대한 더 많은 옵션을 보려면 다음을 git push시도하십시오.git help push


아래 형식을 사용했습니다.

git push https://username:password@myrepository.biz/file.git --all

암호 또는 사용자 이름에 @가 포함되어 있으면 % 40으로 대체하십시오.


Git 문서 에 따르면 git push명령 의 마지막 인수는 푸시하려는 저장소가 될 수 있습니다.

    git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
             [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream]
             [<repository> [<refspec>…]]

그리고 repository매개 변수가 될 수 있습니다 URL 또는 원격 이름을 입력합니다.

따라서 clone명령 예제에서와 동일한 방식으로 사용자 이름과 암호를 지정할 수 있습니다 .


Git은 이와 같은 URL을 사용할 때 비밀번호를 저장하지 않습니다. 대신 사용자 이름 만 저장하므로 다음에 암호를 묻는 메시지 만 표시하면됩니다. 설명서에 설명 된대로 암호를 저장하려면 외부 자격 증명 도우미를 사용해야합니다 . Windows의 경우 Git 용 Windows Credential Store를 사용할 수 있습니다 . 이 도우미는 Windows 용 GitHub 에도 기본적으로 포함되어 있습니다 .

사용시 비밀번호가 자동으로 기억되므로 한 번만 입력하면됩니다. 따라서 복제 할 때 암호를 묻는 메시지가 표시되고 리모컨과의 모든 추가 통신은 암호를 다시 묻지 않습니다. 대신 자격 증명 도우미가 Git에 인증을 제공합니다.

물론 이것은 https를 통한 인증에만 작동합니다. ssh 액세스 ( git@host.com/repository.git)의 경우 SSH 키와 기억할 수있는 키 ssh-agent(또는 plink를 사용하는 경우 PuTTY의 호출)를 사용합니다.


가능하지만 git 2.9.3 (2016 년 8 월) 이전 git push에는 복제 된 저장소로 푸시 백 할 때 사용되는 전체 URL을 인쇄합니다.
여기에는 사용자 이름과 비밀번호가 포함됩니다!

하지만 더 이상은 없습니다 : 커밋 68f3c07 (2016 년 7 월 20 일) 및 Jeff King ( )의 커밋 882d49c (2016 년 7 월 14 일 ) 참조 . (가 합병 - Junio C 하마노 -71076e1 커밋 2016 08 팔월)peff
gitster

push: 상태 출력에서 ​​URL 익명화

47abd85 커밋 (가져 오기 : 저장하기 전에 URL에서 사용자 이름 제거, 2009-04-17, Git 1.6.4) 은 가져 오기를 통해 URL을 익명화하도록 가르쳤습니다.
주된 목적은 병합 커밋 메시지에 암호를 고착시키는 것을 피하는 것이었지만 부작용으로 stderr로 인쇄하는 것도 피합니다.

푸시 측에는 병합 커밋 문제가 없지만 stderr에 인쇄하는 것을 피해야합니다 . 동일한 익명화 기능을 재사용 할 수 있습니다.

이것이 표시 되려면 자격 증명이 명령 줄이나 git 구성 파일에 나타나야하며, 어느 쪽도 특히 안전하지 않습니다.
따라서 사람들 대신 자격 증명 도우미를 사용하도록 전환 해야 하므로이 문제가 해결됩니다.

그러나 어떤 이유로 든 URL에 포함 된 자격 증명을 사용하는 사람들의 상황을 개선하지 않을 이유가 없습니다.

참고 URL : https://stackoverflow.com/questions/29776439/username-and-password-in-command-for-git-push

반응형