programing

git push 명령에서 사용자 이름 및 암호

lovejava 2023. 10. 16. 21:26

git push 명령에서 사용자 이름 및 암호

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

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

푸시할 때 사용자 이름과 비밀번호도 지정 가능합니까?그래서 예를 들면, 달리기는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 push https://YOUR_GIT_USERNAME@github.com/YOUR_GIT_USERNAME/yourGitFileName.git

2021년 8월 13일 비밀번호 인증 지원이 해제되었습니다.대신 개인 접속 토큰을 사용할 수 있습니다.다음과 같이 푸시 명령을 수행합니다.

git push https://<User Name>:<Token>@github.com/<User Name>/<Your Repository>.git

액세스 토큰을 만드는 방법에 대한 링크

Git 문서에 따르면, 마지막 주장은git pushcommand는 푸시할 저장소가 될 수 있습니다.

    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 2.9.3(2016년 8월) 이전에 agit push복제된 레포로 다시 푸시할 때 사용되는 전체 URL을 인쇄합니다.
사용자 이름과 비밀번호가 포함되어 있습니다!

하지만 더 이상은:제프 킹의 커밋 68f3c07(2016년 7월 20일)과 커밋 882d49c(2016년 7월 14일)를 참조하십시오.peff
(2016년 8월 8일 준오 C 하마노 ---- 커밋 71076e1에 합병)

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

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

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

이 문제가 발생하려면 자격 증명이 명령줄 또는 git 구성 파일에 표시되어야 하며 둘 중 어느 것도 특별히 안전하지 않습니다.
따라서 사람들은 대신 자격 증명 도우미를 사용하는 것으로 전환해야 하며, 이로 인해 이 문제는 사라집니다.

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

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

사용 시 비밀번호가 자동으로 기억되기 때문에 한 번만 입력하면 됩니다.따라서 복제할 때 암호를 묻는 메시지가 표시되고, 이후 원격지와 통신할 때마다 암호를 다시 입력하라는 메시지가 표시되지 않습니다.대신 자격 증명 도우미가 Git에게 인증을 제공합니다.

액세스)의에만 작동합니다(를되며 https , ssh (git@host.com/repository.git와 SSH 합니다를 할 수 ssh-agent(또는 플링크를 사용하는 경우 PuTTY의 미인대회).

6.5년이 지난 지금, 멀티팩터 인증은 거의 모든 곳에서 이루어지고 있으며, 아마도 토큰을 사용하게 될 것입니다.github의 경우 개인 액세스 토큰 만들기를 참조하십시오.

GitCredential Manager로 이 문제를 해결했습니다.

그것은 깃을 위한 터미널 유틸리티입니다.인 경우git push, 자격 증명을 제공하는 프롬프트가 열립니다.그들의 GitHub Repo에 대한 자세한 내용을 확인해주시기 바랍니다.https://github.com/GitCredentialManager/git-credential-manager

설치 및 사용이 용이합니다.

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