개인 공부를 하며 정리한 글입니다.
틀린 부분, 피드백 무엇이든 언제든지 환영합니다.
Github 계정이 생성되어 있고, Git이 설치되어 있다는 것을 전제로 합니다.
예시로 conding test 코드 저장을 위한 repository를 만들어고 clone 해보겠습니다.
1. 저장소(repository) 만들기
우측 상단의 + 클릭 > New repository 클릭
< 세팅 - 필수>
- Repository name을 적당히 지어줍니다.
- Public (공개) / Private (비공개) 여부 체크해줍니다.
< 세팅 - 선택 >
- Add a README file : 체크하면 루트 경로에 README.md 파일을 만들어주는데, 마크다운(Markdown) 형식을 사용해서 문서를 작성할 수 있습니다. 주로 프로젝트 소개, 설치 방법, 사용 방법, 라이선스 정보 등 매뉴얼에 대한 정보를 작성하게 됩니다. 체크는 안해도 상관은 없지만, 웬만하면 체크해서 생성해주는 편입니다.
- Add .gitignore : .gitignore 은 Git을 사용해서 소스제어를 할 때, 특정 파일이나 폴더를 무시하도록 설정하는 파일입니다. 저는 Java 언어로 코딩테스트를 준비할 거라 템플릿으로 Java를 선택했습니다.
- Choose a license : 오픈소스 프로젝트에 적합한 라이선스를 선택할 수 있습니다. 라이선스에 따라 다르지만, MIT license는 가장 간단하고, 코드 사용, 수정, 배포가 가능합니다. 라이선스 보호가 필요한 조항에 따라 다른 라이선스를 선택할 수도 있습니다.
체크를 다 하고 나면 우측 하단의 Create repository 를 클릭해줍니다.
저는 README, .ignore, LICENSE 모두 설정해줬기 때문에 파일들이 추가된 것을 확인할 수 있습니다.
2. Repository 복제하기
우측 상단에 ' <> Code' 를 클릭하면 Clone을 위한 레파지토리의 주소가 제공됩니다.
HTTPS 주소를 복사해줍니다.
터미널이나 git bash를 열고,
git clone 명령어로 저장소를 내 PC로 복제합니다.
git clone <HTTPS 주소>
Github에서 Private(비공개) 저장소를 사용할 경우, 계정 인증을 필요로 합니다.
인증 방법은 두 가지가 있습니다.
1) Access token
2) SSH Key
둘 중 한 가지 방법을 사용하면 됩니다.
Access token 인증 방식은 저장소에 접근할 때(pull, push 등)마다 token을 복사해서 입력해야 합니다.
매번 입력해야 해서 번거로울 수 있기 때문에, SSH 사용이 가능하다면 SSH Key 인증 방식을 추천합니다.
1) Access token 인증
먼저 HTTPS 주소를 사용하면 되고, Access token 발급을 필요로 합니다.
> Access token 발급 방법
Settings

Developer settings (가장 하단에 있음)

Tokens (classic)

Generate new token (classic)

password 입력 및 세팅
기본적으로 repo는 체크해줍니다. 나머지는 필요한 경우에만 체크합니다.

Access token 발급이 완료되면, ghp로 시작하는 token이 보이는데 다시 볼 수 없다고 안내가 나옵니다.
미리 복사를 해서 어딘가에 저장해둡니다.

git clone <HTTPS 주소>
Username 을 입력하라고 하면, 계정 이메일 말고 닉네임?프로필명?을 입력해줘야 합니다.
Password 를 입력하라고 하면, 발급받아서 미리 복사해둔 Access token 을 붙여넣기 해줍니다. (계정 비밀번호 아닙니다.)
2) SSH Key 인증
역시 사전에 SSH Key를 발급받아야 합니다.
터미널에서 ssh-keygen 명령어를 사용해서 발급받을 수 있습니다.
> SSH Key 발급 & 등록 방법
1. 터미널에서 SSH Key 생성
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
-t rsa : RSA 알고리즘 사용
-b 4096 : 키 길이를 4096 비트로 설정 (안전)
-C "e-mail" : SSH Key에 주석 추가 (이메일 주석으로 구분 용이)
2. 저장 위치 설정
기본 경로 : /home/<username>/.ssh/id_rsa

변경을 원할 경우에, 경로를 새로 입력해주면 됨. (ex. /home/<username>/.ssh/github_ssh 로 변경하면 github_ssh라는 이름의 키가 생성됨)
3. 비밀번호 입력 (선택사항)
비밀번호를 설정할 수 있고, 그냥 Enter를 누를 경우 비밀번호 없이 SSH Key가 생성됨

4. SSH Key 확인
발급받은 경로로 이동해서 확인 가능
- id_rsa : 개인 키
- id_rsa.pub : 공개 키 (Github에 등록할 키)

5. Github 계정에 공개 키 등록
공개 키 화면에 출력하기
cat ~/.ssh/id_rsa.pub
ssh-rsa로 시작하는 긴 문자열이 출력될 텐데, 이를 복사해서 Github에 등록하기.
Settings > SSH and GPG keys > New SSH key 클릭 > 복사한 공개 키 붙여넣기

6. SSH 설정이 제대로 되었는지 확인
ssh -T git@github.com

이번에는 HTTPS 주소가 아니라, SSH 주소를 복사해줍니다.
git clone <SSH 주소> 입력 -> SSH Key 패스워드 입력
그럼 이렇게 github 저장소가 PC로 잘 복제된 것을 확인할 수 있습니다.
Reference: