개인 Github 저장소 복제


226

작업중 인 프로젝트를 위해 Github에 개인 저장소가 있습니다. 지금까지는 내 홈 데스크톱에서만 작업했지만 랩톱을 구입하여 어느 컴퓨터에서든 프로젝트를 수행하고 변경 사항을 푸시 / 풀할 수 있도록 랩톱을 설정하려고했습니다.

랩톱의 Github 계정에 새 SSH 키를 추가하고 설정 한 공개 테스트 저장소를 복제하고 변경하는 데 성공했습니다. 그러나 개인 저장소를 복제 할 수 없었습니다. 개인 저장소를 복제하기 위해 명령 줄에서해야 할 특별한 것이 있습니까? 랩톱에 새 GitHub 계정을 설정하고 공동 작업자로 설정해야합니까?

내가 사용한 명령은 git clone git://github.com/myusername/reponame.git


3
개인 저장소를 로컬로 복제하기 위해 어떤 명령을 사용 했습니까? 어떤 오류가 발생 했습니까?
Ron DeVera

답변:


171

개인 복제 URL은 형태를 취할 git@github.com:username/repo.git- 아마도 당신이 사용하는 데 필요한 git@것보다 git://?

git:// URL은 읽기 전용이며 개인 저장소는이 형식의 액세스를 허용하지 않는 것 같습니다.


예- "https : //"대신 "git@github.com :"을 사용하면 문제가 해결되었습니다. 실제로 2FA를 동시에 활성화했지만 그와는 아무런 관련이 없습니다.
leo

148

이것은 나를 위해 일했다 :

git clone https://username@github.com/username/repo_name

물론 이것은 SSH 키를 Github에 추가 한 후였습니다 . 필요한 경우 CentOs 서버에서 이것을 사용했습니다.


4
이것에 감사합니다. 그러나 이것이 왜 효과가 있는지는 분명하지 않습니다. 비밀번호를 묻지 않았습니다. https를 통해 git clone이 내 ssh 키를 터치해야합니까? 나는 생각하지 않았다.
reinhardt

1
멋진데, 우분투에서 개인 저장소를 다운로드 할 수있었습니다.
Nino Škopac

왜 이것이 작동하지만 git@github.com : username / repo.git은 그렇지 않습니까?
diimdeep

@diimdeep Git 및 기타 도구는 종종 원격 저장소의 파일에 액세스하기 위해 git : 프로토콜을 사용합니다. 일부 방화벽 구성에서 git : // URL이 차단되어 리포지토리를 복제하거나 종속성을 다운로드하려고 할 때 오류가 발생합니다. 예를 들어 회사 방화벽은 git :을 차단하는 데 "유명합니다".이 문제가 발생하면 git config --global url 명령을 실행하여 https :를 강제로 사용할 수 있습니다. "https : // "
.insteadOf

1
경우에 따라 비밀번호를 묻는 메시지가 표시되고 액세스가 거부 된 경우 GitHub 로그인 비밀번호 대신 "개인 액세스 토큰"을 제공해야하기 때문일 수 있습니다. [1] help.github.com/articles/which-remote-url-should-i-use [2] help.github.com/articles/…
David Winiecki

71

이것은 나를 위해 일했다 :

git clone https://username:password@github.com/username/repo_name.git

5
이것은 특수 문자 암호에 문제가 있으며, 암호를 로그에 남겨두고 더 이상 작동하지 않는 것 같습니다
pcnate

5
사용해보십시오-계정 비밀번호를 입력하라는 메시지가 표시됩니다. 기록이나 로그에 비밀번호가 유출 될 염려가 없습니다. git clone https://username@github.com/username/repo_name.git
Vinay

64

나는이 문제를 여러 번 만났 으며이 페이지에 착륙 할 때마다 모든 것을 시도하고 실패했습니다!

2FA를 사용하도록 설정했기 때문입니다 !!!

https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled 에 따르면

이중 인증 을 사용하도록 설정  했거나 SAML 싱글 사인온 을 사용하는 조직에 액세스하는 경우   HTTPS Git의 비밀번호를 입력하는 대신 개인용 액세스 토큰을 제공 해야합니다  .

  1. 이 링크를 따라 액세스 토큰을 만드 십시오
  2. git clone https://github.com/username/repo_name.git (기본 git repo 링크는 충분합니다!)
  3. 사용자 이름을 입력하고 액세스 토큰을 비밀번호로 사용하십시오 !!

최신 정보:

  • 명령 행에 액세스 토큰을 공개하지 않으려면 액세스 토큰을 사용자 이름으로 붙여 넣은 다음 enter 키를 누르십시오 (암호 필요 없음).
  • 액세스 토큰을 반복해서 복사하여 붙여 넣는 것을 싫어하십니까?
    사용 git config credential.helper store(신뢰할 수없는 컴퓨터에서는 사용 하지 마십시오)

Windows에있는 경우 github.com/microsoft/Git-Credential-Manager-for-Windows 를 설치할 수 있습니다. 그러면 개인 저장소를 복제 할 때 Github 로그인이있는 UI 창이 나타납니다. 또한 2FA 코드를 채울 수 있습니다. Github 자격 증명이 안전하게 저장됩니다.
Jirik

18

Windows 용 Git을 사용하면 HTTPS URL을 사용하는 것이 더 쉽습니다.

git shell을 연다 git clone https://github.com/user/repo. 프롬프트가 표시되면 사용자 이름과 비밀번호를 입력하십시오. SSH 키를 설정할 필요가 없습니다.


1
내가 설정 SSH를 가지고 있지의 단순 동의
펠릭스 Gagnon의-Grenier의에게

다른 의견에 동의, 그냥 HTTPS URL을 사용하면 Windows 또는 우분투에서 완벽하게 작동합니다 (116.04에서 시도)
greg_data

18

나를 위해 해결책은 다음과 같습니다.

git clone https://myusername@restoftherepolink.git

여기서 당신은 repo의 소유자 여야하지만 그렇지 않은 경우 다음과 같이 갈 것입니다.

git clone https://myusername@github.com/ownersusername/repo_name.git

그렇다면2FA enabled :

  1. 오른쪽 상단의 프로필 아이콘에서 설정으로 이동하거나 https://github.com/settings/profile을 방문 하십시오.
  2. 하단 탭으로 이동하거나 https://github.com/settings/tokens 로 이동 하십시오.
  3. 여기에서 마지막 탭을여십시오. 개인 토큰. 그리고 토큰을 생성
  4. 토큰을 복사하고 실행 git clone https://myusername@restoftherepolink.git

비밀번호를 묻는 메시지가 표시되면 해당 토큰을 여기에 넣으십시오. 토큰 생성 이미지는 여기


1
해당 URI를 가진 공개 저장소가 없다면 git은 username / password를 묻는 프롬프트처럼 보입니다. 따라서 첫 번째 명령이 정확합니다
pcnate

8

회사 (개인) 계정과 2 단계 인증을 사용하도록 설정 했으므로 몇 개의 게시물을 결합하여 아래와 같이 작동해야했습니다. (같은 상황에있는 사람에게 유용 할 수 있도록 적어 둡니다)

Initially it was the Fatal Error. 
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:

https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/ 에서 자격 증명 관리자를 설치하고 GIT를 업데이트했습니다.

다음과 같이 clone 명령을 사용하려고 할 때 문제가 아래로 이동함에 따라 문제가 해결되지 않았습니다.

$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

remote: Invalid username or password.
fatal: Authentication failed for 'https://

내 암호에는 $ 기호가 있었고 어떤 이유로 GIT 명령 줄 / GIT Bash가 마음에 들지 않았습니다. 반환 된 텍스트에 $ 기호가없는 오류에서 이것을 볼 수 있습니다.

fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'

이 사이트를 참조해야했습니다 : https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

참고 : Windows Credential Manager에 계정에 잘못된 암호가 저장되어 있으면 문제가 추가됩니다. 아래 단계로 이동하기 전에이 방법으로 저장된 github 자격 증명을 제거했습니다.

$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

이제 Windows 자격 증명 관리자가 팝업되었습니다. 텍스트 상자에 내 사용자 이름과 비밀번호를 입력하고 ($ 기호가있는 비밀번호를 수락 함) 2 단계 인증 코드를 입력하라는 메시지가 표시됩니다. Google OTP의 인증 코드를 입력하면 복제가 완벽하게 시작되었습니다.


달러 기호 $는 유닉스에서 예약 된 문자입니다. $기호 뒤에 오는 문자열과 동일한 이름을 가진 변수 값 검색 시작을 표시합니다 .
그것에 대해 생각해 보자

나를 위해 Windows 자격 증명을 삭제하면 문제가 해결되었습니다.
Michael Larionov

6

2FA를 사용하여 개인 저장소에서 복제 할 때 따라야하는 간단한 단계가 있습니다.

  1. Git 계정으로 이동
  2. 설정-> 개발자 설정-> 개인 액세스 토큰으로 이동하십시오.
  3. 새 토큰 생성을 클릭하십시오
  4. 원하는 제목과 기능으로 토큰을 만듭니다.
  5. 개인 저장소를 복제 할 때 git clone repoName을 사용하여 사용자 이름을 입력 한 후 개인 액세스 토큰을 암호로 제공하십시오.

개인 저장소에 대한 인증 실패 오류 메시지가 표시 될 때 동일한 단계를 수행하십시오.


5

맥의 대답에 대응하여, 당신은 클릭하여, 사용자의 SSH 복제 URL에 당신의 GitHub의 REPO 페이지를 얻을 수 있습니다 SSHYou can clone with HTTPS, SSH, or Subversion.와 URL을 복사합니다.


4

이것은 Mac에서 나를 위해 일했습니다. git clone https://username@github.com:username/repo_name


3

MK Yung의 답변 외에도 403 Forbidden 응답을받지 않으려면 리포의 배포 키에 배포 할 위치의 공개 키를 추가해야합니다.




1

새로 사용한 컴퓨터 에이 명령을 실행하는 다른 자격 증명 이있는 경우

자식 복제 https://github.com/username/reponame.git

직접 작동하지 않습니다. 힘내는 저장된 자격 증명을 사용하려고 시도하고 사용자 이름과 암호를 묻지 않습니다. 자격 증명이 일치하지 Repository not found않으므로 git이 출력 되고 복제 작업이 실패합니다. 더 이상 사용하지 않기 때문에 이전 자격 증명을 삭제하고 위에서 언급 한 명령을 다시 실행하고 필요한 사용자 이름과 암호를 입력하고 개인 저장소를 복제했습니다.


1

1) 아래 형식의 사용자 이름과 비밀번호로 명령을 실행하십시오.

git clone https://your_username:your_password@github.com/username/reponame.git

다른 사람들이 여기에 언급 한 것처럼 문제는 암호에 특수 문자가있을 때입니다. Javascript에서 아래 코드를 사용하여 특수 문자가 포함 된 비밀번호를 UTF-8 인코딩으로 변환하십시오.

console.log(encodeURIComponent('password@$123'));

이제 특수 문자와 실행 명령이 아닌이 생성 된 비밀번호를 사용하십시오.

이 문제가 해결되기를 바랍니다.



0

2FA를 사용하도록 설정하지 않은 경우 리포지토리에 액세스 할 수있는 권한이 있고 리포지토리가 존재하는 경우 git@github.com이 다른 계정으로 로그인되었을 수 있습니다.

당신이 할 수 있는지 확인

ssh -T git@github.com

다른 계정이 표시되면이 문제를 해결하십시오.

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git

표시됩니다 : unknown option -T. 내 자식 버전은2.7.4
bvdb

@bvdb 사과드립니다.ssh -T git@github.com
Kexin Lu

0

에서 달성하려면 Dockerfile아래 줄이 도움이됩니다.

ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project

그런 다음 아래 인수로 빌드 할 수 있습니다.

docker build --build-arg git_personal_token={your_token} .

0
git clone https://myusername:mygithubpassword@github.com/myusername/project.git

당신이 repo에서 개인 repo를 사용하려고 할 때 당신은 그것에 대한 사용자 이름과 암호를 전달해야합니다.


안전하지 않습니다. 복제 된 저장소는 제공된 http 링크를 .git / config 파일에 저장합니다. 로컬 리포지토리에 대한 모든 커밋은 사용자 이름과 비밀번호를 요구하지 않고 원격으로 푸시 할 수 있습니다. 당신이 유일한 사용자가 아니라면 정말 위험합니다!
Tian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.