도서 : Do it! 지옥에서 온 문서관리자 깃&깃허브 입문
git bash 통해서 컴퓨터에서 작업. 그리고 컴퓨터 안에 커밋을 저장함
→ 이 저장소를 지역 저장소(local repository)
저장소를 삭제하면 작업했던 내용들이 모두 사라진다. 지역 저장소에만 저장하는 것은 안전하지 못함.
컴퓨터가 아닌 다른 곳에 저장 공간 마련하기
원격 저장소(remote repository)
- 지역저장소와 원격저장소를 연결해서 버전 관리하는 파일들을 쉽게 백업할 수 있다.
- 원격 저장소란, 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 의미함.
- "백업"과 "협업"의 기능을 함.
- 원격 저장소 중 하나인 깃허브(Github)
깃허브로 할 수 있는 것
1) 원격 저장소에서 깃 사용 가능
2) 지역 저장소를 백업
3) 협업 프로젝트에 사용 가능
4) 자신의 개발 이력을 남길 수 있음
5) 다른 사람의 소스를 살펴볼 수 있고, 오픈 소스에 참여할 수도 있음
[실습] 지역 저장소와 원격 저장소 연결
0. 사전설정
- 깃허브에 git-test 저장소 생성
- local-git 로컬저장소 생성
- f1.txt 생성 후 커밋
1. 원격 저장소에 연결하기
git remote add origin 복사한주소(깃허브저장소)
- 원격 저장소에 origin을 추가하겠다고 깃에게 알리는 것.
- origin: 깃허브 저장소 주소를 의미, 저장소 주소가 너무 길어서 origin이라는 단어로 줄여서 remote에 추가
2. 연결되었는지 확인
git remote -v
- remote에 origin이 연결되어 있고, origin이 가리키는 주소가 바로 옆에 표시.
3. 원격 저장소에 파일 올리기
git push -u origin master
- 지역 저장소의 브랜치를 origin(원격 저장소의 master 브랜치)로 푸시하라는 명령
- -u 옵션: 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것.
- 한번만 하면 됨
- 깃허브 들어가보면 push되어있다.
4. f1.txt 수정 후 커밋, 그리고 푸시
- 한 번이라도 지역 저장소와 원격 저장소를 연결해서 푸시했다면, 그 다음부터는 간단하게 푸시할 수 있다.
git push
※ 깃허브 사이트에서 직접 커밋
깃허브 저장소의 Add file > Create new file 또는 Upload file
- f2.txt 만들어주자.
[실습] 원격 저장소에서 파일 내려받기
1. local-git에는 없는, 깃허브 저장소에 있는 f2.txt를 내려받을 것.
git pull origin master
2. 커밋 로그 확인
[실습] SSH 원격 접속하기
깃허브의 원격 저장소에 파일을 올리는 등의 작업을 위해서는 id pw를 입력해서 내가 저장소의 주인임을 인증해야 함.
이에 반해 SSH 원격 접속은 private 키와 public 키를 이용해서 현재 사용하고 있는 기기를 깃허브에 인증하는 방식이다.
터미널 창에서 깃허브 사용하다보면 인증하라고 하는 경우가 많은데, SSH 이용하면 자동 로그인 기능 통해 번거로움을 줄일 수 있다.
1. 홈디렉터리로 이동, SSH 키 생성. 뭐 입력하라고 뜨면 다 엔터
ssh-keygen
id_rsa가 private 키, id_rsa.pub이 public 키이다.
2. 깃허브에 퍼블릭 키 전송하기
- .ssh 디렉터리로 이동 후 public 키 확인 -> 복사
- 깃허브 로그인
- profile > settings > SSH and GPG keys > add key > 등록
3. SSH 주소로 원격 저장소 연결하기
- 깃허브에 새로운 리포지토리 만들기
- SSH 주소 복사
- git bash로 로컬저장소 하나 만들기 (connect-ssh)
- SSH 주소를 사용해서 원격 저장소에 연결, HTTPS 주소 사용할 때와 같다.
git remote add origin 복사한주소(SSH)
- git remote -v로 확인
이후 원격저장소를 사용하는 동안 로그인 정보를 요구하지 않는다. 좀 더 편하게 푸시나 풀할 수 있음.
'기타' 카테고리의 다른 글
클라우드 서비스(SaaS, PaaS, IaaS, FaaS) 개념 (0) | 2022.10.23 |
---|---|
[Git] 깃허브로 협업하는 방법, 공동작업자 추가, 협업 흐름 (0) | 2022.10.13 |
[Git] 브랜치(Branch), 병합(Merge), 체크아웃, stash 스택 (0) | 2022.10.10 |
[Git] Git이란? Git 사용 방법과 명령들 (0) | 2022.10.10 |
[C#] 매개변수 ref와 out (0) | 2022.06.20 |