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


107

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

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

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

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


에 대한 해결책을 찾으 git commit십니까?
Nam Vu

답변:


157

예, 할 수 있습니다

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


13
이것은 git 구성에서 사용자 이름과 비밀번호 를 일반 텍스트 로 저장 합니다.
찌를

4
일반 암호 대신 암호 해시를 사용할 수 있습니다.
Vasiliy Vanchuk

1
@VasiliyVanchuk 어떤 종류의 해시를 사용합니까? Github에서 작동합니까?
Raphi

14
암호에 포함 된 경우 어떻게 @됩니까?
Rahul Sharma

1
' '예를 들어 다음 과 같이 전체 경로를 포함하는 것이 git push 'https://username:password@myrepository.biz/file.git'
좋습니다


3

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명령 예제에서와 동일한 방식으로 사용자 이름과 암호를 지정할 수 있습니다 .


2
적절 해 보이지만 예를 들어 사용자 이름과 암호를 인수로 사용하여 git repo를 추가하면 여전히 암호를 묻는 메시지가 표시됩니다.
Jake

3

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

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

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


4
"키 및 기타 솔루션을 설정하는 기능을 알고 있지만 하나의 명령으로 사용자 이름과 비밀번호를 계속 사용할 수있는 방법이 있는지 알고 싶습니다."
Marvin

@Marvin 나는 그 발언을 알고 있지만 두 문장으로 대답을 제출하고 싶지 않았기 때문에 HTTPS를 통한 연결에 관심이없는 다른 사용자를위한 정보를 포함했습니다.
찌르기

4
그래도 여전히 그의 질문에 대답하지 않습니다.
Marvin

3

가능하지만 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에 포함 된 자격 증명을 사용하는 사람들의 상황을 개선하지 않을 이유가 없습니다.


2

특수 문자가있는 비밀번호에 문제가있는 사람은 비밀번호를 생략하면 다음과 같은 메시지가 표시됩니다.

git push https://YOUR_GIT_USERNAME@github.com/YOUR_GIT_USERNAME/yourGitFileName.git

귀하의 답변은 전체 웹에서 사용자 이름 만 제공하는 방법을 직접 언급하는 유일한 것 같습니다.
shuhalo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.