programing

개인 저장소 복제(Github)

telecom 2023. 5. 5. 08:35
반응형

개인 저장소 복제(Github)

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

저는 노트북용 Github 계정에 새 SSH 키를 추가했고, 제가 설정한 공개 테스트 레포를 복제하고 변경하는 데 성공했습니다.하지만 개인 레포를 복제할 수 없었습니다.개인 레포를 복제하려면 명령줄에서 특별하게 수행해야 하는 작업이 있습니까?노트북용 GitHub 계정을 새로 설정하고 공동작업자로 설정해야 합니까?

제가 사용한 명령어는git clone git://github.com/username/reponame.git

이것은 저에게 효과가 있었습니다.

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

은 "" "URL" 입니다.git@github.com:username/repo.git아마도 당신은 사용할 필요가 있었을 것입니다.git@git://?

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

2022년 4월 업데이트:

계정에서 개인 리포지토리를 복제할 수 있으며, 사용자가 개인 리포지토리의 소유자 또는 구성원인 경우 조직에서 개인 리포지토리를 복제할 도 있습니다.

*pat은 PAT(개인 액세스 토큰)입니다.

git clone https://<pat>@github.com/<your account or organization>/<repo>.git

계정 또는 조직에서 개인 저장소를 복제하려면 Github 계정에 PAT(개인 액세스 토큰)를 생성하고 위의 명령에 추가해야 합니다.*조직에는 PAT 제너레이터가 없습니다.

Github 계정에서 PAT를 생성하는 방법은 다음과 같습니다.

1, "설정"으로 이동합니다.

여기에 이미지 설명 입력

2, 아래로 스크롤한 다음 "개발자 설정"으로 이동합니다.

여기에 이미지 설명 입력

3, "개인 액세스 토큰"을 누른 다음 "토큰 생성"을 누릅니다.

여기에 이미지 설명 입력

4, "참고"를 입력한 후 "리포"를 선택합니다.

*"repo" 선택하지 않으면 개인 저장소를 복제할 수 없습니다.

여기에 이미지 설명 입력

5, 아래로 스크롤한 다음 "토큰 생성"누릅니다.

여기에 이미지 설명 입력

6, 마지막으로 PAT가 생성됩니다.

여기에 이미지 설명 입력

다음은 위에서 생성된 PAT를 사용하는 명령입니다.

git clone https://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@github.com/<your account or organization>/<repo>.git

저는 이 문제를 여러 번 만났고 이 페이지에 오를 때마다 모든 것을 시도했지만 실패했습니다!

2FA가 활성화되어 있기 때문입니다!!!

https://help.github.com/articles/which-remote-url-should-i-use/ #에 따르면 -2fa-가 활성화된 경우

2단계 인증을 사용하거나 SAML Single Sign-On을 사용하는 조직에 액세스하는 경우 HTTPS Git에 대한 암호를 입력하는 대신 개인 액세스 토큰을 제공해야 합니다.

  1. 링크를 따라 액세스 토큰 만들기
  2. git clone https://github.com/username/repo_name.git
  3. 사용자 이름을 입력하고 액세스 토큰을 암호로 사용합니다!!

업데이트:

  • 명령줄에서 액세스 토큰을 노출해도 괜찮으면 액세스 토큰을 사용자 이름으로 붙여넣은 다음 Enter 키를 누르면 됩니다(암호 필요 없음).
  • 액세스 토큰을 반복해서 복사하고 붙여넣는 것을 싫어하십니까?
    사용하다git config credential.helper store(신뢰하지 않는 컴퓨터에서는 이 작업을 수행하지 않음)

이것은 저에게 효과가 있었습니다.

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

저에게 해결책은 다음과 같습니다.

git clone https://myusername@restoftherepolink.git

여기서 당신은 레포의 소유자가 되어야 하지만 그렇지 않으면 다음과 같이 될 것입니다.

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

다음이 있는 경우:

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

암호를 묻는 메시지가 나타나면 토큰을 여기에 넣습니다.토큰 생성 이미지 여기

해결책: 2022년 2월

  1. settings > developer settings > personal access token링크: https://github.com/settings/tokens
  2. 을 클릭합니다.generate new token
  3. 범위 선택(전체 액세스에 대해 모두 활성화)

이렇게 하면 다음과 같은 토큰이 생성됩니다.

여기에 이미지 설명 입력

이제 다음 명령을 사용합니다.

git clone https://user:TOKEN@github.com/username/repo.git


2021년 업데이트(오래됨)

구식:다음 명령을 시도합니다.

git clone https://user:pass@github.com:username/repo.git

다음 오류가 발생하면 해결됩니다.

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

다음 지원 페이지로 연결됩니다.

https://docs.github.com/ 인증/인증/계정 유지 및 데이터 보안/개인 액세스 권한 생성



솔루션 2021(이전 버전)

아이콘 프로필을 클릭하고 다음으로 이동합니다(자세한 내용은 링크 참조).

settings> developer settings> personal acces token > generate new token

Git for Windows를 사용하면 HTTPS URL을 더 쉽게 사용할 수 있습니다.

그런 다음 깃 셸을 엽니다.git clone https://github.com/user/repo메시지가 나타나면 사용자 이름과 암호를 입력합니다.SSH 키를 설정할 필요가 없습니다.

2023년을 위한 더 나은 솔루션

개인 액세스 토큰을 사용하면 작동하지만, 복제할 리포지토리로만 토큰 액세스를 좁히는 것을 선호할 수 있습니다.

Github은 정확히 그렇게 할 수 있는 세분화된 개인 액세스 토큰을 도입했습니다.

다음은 수행할 단계입니다.

  1. 오른쪽 상단 메뉴에서 "설정"을 선택합니다.

여기에 이미지 설명 입력

  1. 다음 페이지에서 왼쪽 사이드바에서 "개발자 설정"을 선택합니다.

여기에 이미지 설명 입력

  1. 그런 다음 "개인 액세스 토큰" 아래의 다음 페이지에서 "세밀 토큰"을 선택합니다.

여기에 이미지 설명 입력

  1. 그런 다음 "새 토큰 생성" 단추를 누릅니다.

여기에 이미지 설명 입력

  1. 다음 페이지에서 토큰에 이름을 지정하라는 메시지가 표시되고 리포지토리 액세스도 선택할 수 있습니다.리포지토리를 하나만 지정하려면 "리포지토리만 선택"을 선택한 다음 드롭다운 메뉴에서 리포지토리를 선택합니다.

여기에 이미지 설명 입력

  1. 그런 다음 같은 페이지에서 리포지토리 권한을 지정해야 합니다.개인 저장소를 복제할 수 있도록 하려면 "내용"을 "액세스: 읽기 전용"으로 만듭니다.

여기에 이미지 설명 입력

마지막으로 "토큰 생성" 단추를 누릅니다.

토큰을 가져오면 복사하고 명령을 실행합니다.

git clone https://oauth2:<YOUR-TOKEN-HERE>@github.com/<your_user>/<your_repo>.git

그리고 이것이 마지막입니다.

모든 사람들이 복제 과정에 대해 알고 있기 때문에, 저는 여기에 몇 가지를 더 추가하고 싶습니다.특수 문자나 "@"를 "%40"으로 쓰는 것에 대해 걱정하지 마십시오. 문자 인코딩 참조

$ git clone https://username:password@github.com/user/repo   

이 라인이 작업을 수행할 수 있습니다.

  1. 특수 문자가 포함된 암호가 있다고 가정합니다(암호의 '@'로 대체할 내용을 모르겠습니다).
  2. 원래 암호가 아닌 다른 임시 암호를 사용하려는 경우

이 문제를 해결하기 위해 GitHub Developer 옵션을 사용하여 Access 토큰을 생성할 것을 권장합니다.액세스 토큰은 안전하고 특별한 문자를 찾을 수 없을 것입니다.

개인 액세스 계정 만들기

이제 제 저장소에 액세스하기 위해 아래 코드를 작성하겠습니다.

$ git clone https://username:token@github.com/user/repo

나는 단지 나의 원래 비밀번호를 액세스 토큰으로 바꾸는 것입니다. 이제 나는 누군가 나의 액세스 자격 증명을 볼 수 있을지 걱정하지 않습니다. 나는 내가 느낄 때마다 토큰을 다시 생성할 수 있습니다.

repo를 선택했는지 확인합니다. 개인 리포지토리에 대한 전체 제어

개인 레포 복제를 위한 비인터랙티브 방식이 필요했습니다.

문제에서 영감을 얻은 경우: https://github.com/github/hub/issues/1644

1단계.

github 개발자 설정에서 개인 액세스 토큰을 만듭니다. https://github.com/settings/tokens

2단계.

git clone https://$token:x-oauth-basic@github.com/$username/$repo.git

2021년 8월 13일 업데이트

여기서:

2020년 7월에 인증된 모든 Git 작업에 대해 토큰 기반 인증(예: 개인 액세스, OAuth 또는 GitHub App 설치 토큰)을 사용하도록 요구할 계획이라고 발표했습니다.2021년 8월 13일부터 GitHub.com 에서 Git 작업을 인증할 때 계정 암호를 더 이상 사용할 수 없습니다.

오늘 해야 할 일

  • 개발자의 경우, 오늘 GitHub.com 에서 Git 작업을 인증하기 위해 암호를 사용하는 경우, 중단을 방지하기 위해 2021년 8월 13일까지 HTTPS(권장) 또는 SSH 키를 통한 개인 액세스 토큰 사용을 시작해야 합니다.오래된 타사 통합을 사용하고 있다는 경고가 표시되면 클라이언트를 최신 버전으로 업데이트해야 합니다.

  • 통합업체의 경우 운영 중단을 방지하기 위해 2021년 8월 13일까지 웹 또는 장치 권한 부여 흐름을 사용하여 통합을 인증해야 합니다.자세한 내용은 OAuth Apps 인증개발자 블로그 공지를 참조하십시오.


명령줄에서 토큰 사용

개인 액세스 토큰을 작성합니다. 다음을 수행합니다.

일단 토큰이 있으면 HTTPS를 통해 Git 작업을 수행할 때 암호 대신 토큰을 입력할 수 있습니다.

예를 들어 명령줄에서 다음을 입력합니다.

$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token # <----- Bingo!

(*) 자세한 내용은 여기를 참조하십시오.

저는 회사(개인) 계정이 있고 2-Factor-Authentication이 활성화되어 있어서 아래와 같이 몇 개의 게시물을 결합하여 작업해야 했습니다.(같은 상황에 처한 사람에게 유용할 수 있도록 기록)

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

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

다음과 같이 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 자격 증명 관리자에 계정에 대한 잘못된 암호가 저장되면 문제가 추가됩니다.아래 단계로 이동하기 전에 이렇게 저장된 Github 자격 증명을 제거했습니다.

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

이제 Windows 자격 증명 관리자가 나타납니다.텍스트 상자에 사용자 이름과 암호를 입력하고 2단계 인증 코드를 입력하라는 메시지를 표시했습니다.구글 오센티케이터의 인증 코드를 입력했더니 클론이 완벽하게 시작되었습니다.

2FA를 사용하도록 설정한 개인 저장소에서 복제할 때 수행해야 하는 간단한 단계가 있습니다.

  1. Git 계정으로 이동
  2. 설정으로 이동 -> 개발자 설정 -> 개인 접근 토큰
  3. 새 토큰 생성을 클릭
  4. 원하는 제목과 기능을 가진 토큰 만들기
  5. 개인 repo를 복제할 때 git clone repoName을 사용하여 사용자 이름을 입력한 후 개인 액세스 토큰을 암호로 지정합니다.

개인 보고서에 대한 인증 실패 오류 메시지가 표시될 때 동일한 단계 수행

Mac의할 수 .SSHYou can clone with HTTPS, SSH, or Subversion.URL을 복사합니다.

이것은 맥에서 저에게 효과가 있었습니다.git clone https://username@github.com:username/repo_name

git clone https://{personal access token}@github.com/Shuai1996/Root.git

MK Yung의 답변 외에도, 403 Forbidden 응답을 수신하지 않으려면 repo의 배포 키에 배포할 위치에 대한 공용 키를 추가해야 합니다.

먼저 SSH 키가 있는지 확인하거나 다음 위치에서 SSH 키를 생성합니다. https://help.github.com/articles/generating-ssh-keys/

일단 키를 손에 넣었으면, https://github.com/settings/ssh 의 github 계정에 키를 추가해야 합니다.

Windows 사용자의 경우 gitbash를 관리자로 실행하면 유용합니다.

이제 클로닝은 사용자 이름과 암호를 입력할 필요 없이 개인 저장소(repo)에 대해 작동합니다.

2FA를 사용할 수 없고 repo에 액세스할 수 있는 권한이 있으며 repo가 존재하는 경우 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

데스크톱 SSH 공용 키를 github에 추가합니다.

https://github.com/settings/keys

암호 없이 repo를 복제할 수 있습니다.

새로 사용한 시스템에 이 명령을 실행하는 다른 인증 정보가 있는 경우

git clone https://github.com/username/reponame.git

직접적으로 작동하지 않습니다.Git는 저장된 자격 증명을 사용하려고 시도하며 사용자 이름과 암호를 묻는 메시지를 표시하지 않습니다. 증명이 일치하지 않기 는 자격증일않지가출력다니됩로므으명을 합니다.Repository not found복제 작업이 실패합니다.제가 해결한 방법은 이전 자격 증명을 더 이상 사용하지 않기 때문에 이전 자격 증명을 삭제하고 위에서 언급한 명령을 다시 실행하여 필요한 사용자 이름과 암호를 입력하고 개인 레포를 복제하는 것이었습니다.

만약 당신이 그것을 성취하고 싶다면.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} .

아래 형식의 사용자 이름과 암호를 사용하여 명령 실행 시도

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

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

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

이제 특수 문자가 포함된 암호 대신 생성된 암호를 사용하고 명령을 실행합니다.

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

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

repo에서 개인 repo를 사용하려는 경우 사용자 이름과 암호를 전달해야 합니다.

저는 Android Studio를 사용하여 GitHub 개인 저장소 및 2단계 인증(2FA)에서 프로젝트를 복제했습니다.는 lzl124631x님의 답변대로 개인 토큰을 만들었습니다.

그런 다음 다음과 같은 URL을 사용하여 복제했습니다. https://YourGitHubUsername:YourGeneratedPersonalToken@github.com /YourRepoPath.git

SSH 프로토콜을 어떤 이유로 사용할 수 없고 개인 저장소 http(s) URL을 수정하여 기본 인증 자격 증명을 제공하는 것도 옵션이 아닐 경우에 대비하여 대안이 있다는 것도 언급할 가치가 있다고 생각합니다.

기본 인증 헤더는 git-config 옵션을 사용하여 구성할 수 있습니다.

git config --global --unset-all "http.https://github.com/.extraheader"
git config --global --add "http.https://github.com/.extraheader" \
          "AUTHORIZATION: Basic $(base64 <<< [access-token-string]:x-oauth-basic)"

어디에[access-token-string]자리 표시자는 생성된 실제 토큰 값으로 대체되어야 합니다(사각형 대괄호 포함).액세스 토큰에 대한 자세한 내용은 여기와 여기에서 확인할 수 있습니다.

구성이 올바르게 적용된 경우 구성된 경우AUTHORIZATION헤더는 각 HTTPS 요청에 포함됩니다.github.com액세스한 IP 주소git지휘권

2단계 인증확인이 사용 가능한 경우, 새 액세스 토큰을 만들고 이전 액세스 토큰을 다시 생성하지 않아야 합니다.

제 경우에는 그것이 효과가 없는 것처럼 보였습니다.

SSH 키를 생성하고 이 키를 사용하여 저장소를 복제할 수 있습니다.명령은 그대로 유지됩니다.

git clone git@github.com:DriveWealth/my-repo-name.git

2022년 HTTPS를 사용한 개인 저장소 복제

저장소 관리자가 개인 라이브러리에서 개발자에게 사용자에게 액세스 권한을 부여한 경우 먼저 초대를 받은 사용자와 함께 https://gitlab.com/users/sign_in 에 로그인해야 합니다. 암호를 변경하라는 메시지가 표시됩니다. 암호를 변경한 후 리포지토리를 복제하고 변경 내용을 푸시할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2505096/clone-a-private-repository-github

반응형