[Git & Github 입문3] Today I Learned

Dongchan Alex Kim·2023년 2월 3일
0

git&github INTRODUCTION

목록 보기
3/3
post-thumbnail

날짜 : 2023년 2월 3일 수요일

📌 PLAN (~2/5)

  • 웹개발 종합반 강의 2회독 완료 → Velog 기술 블로그 정리까지 (1/25)
  • GIT & GITHUB 이해 및 사용법 숙달(3/4)
  • 코딩테스트 맛보기(aft)
  • 토이프로젝트 맛보기(aft)

📌 WHAT TODAY?

본격 github 시작. push와 pull의 사용법을 파악한다.
GIT-DAY 3 : github와 git을 연동시켜보자.
공부할 책: Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문

1. 지역 저장소와 원격 저장소

  • 사용자 컴퓨터(Local) = 지역 저장소
  • 깃허브에 있는 저장소 = 원격 저장소(Remote Repository)
  • push : 지역 저장소에서 원격 저장소로 커밋을 등록하는 행위.
  • pull : 원격 저장소의 변경사항을 지역 저장소로 내려받는 행위.
  • 동기화(synchronize) : 지역 저장소와 원격 저장소를 항상 같게 유지하는 것.
$ cd ~
#홈 디렉터리로 이동
$ git init loc-git
#loc-git이라는 새 디렉터리를 만들면서 동시에 지역 저장소로 지정
$ cd loc-git
#loc-git 디렉터리로 이동
  • 원격 저장소에 연결하기
    1. 저장소 목록 클릭 후, https 주소 복붙하기
    2. $ git remote add origin (복사한 주소 붙여넣기)
    원격 저장소에 제대로 연결되었는지 (remote) 확인하기
$ git remote -v
  • 원격 저장소에 커밋 올리기
$ git branch -M main
#지역저장소의 브랜치를 origin(원격저장소)의 main브랜치로 푸시하라는 명령
$ git push -u origin main
#-u 옵션은 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결하기 위한 것
#이후 -u 옵션이나 main 브랜치 이름 없이 간단히 푸시할 수 있음

지역 저장소와 원격 저장소를 한 번이라도 연결해서 push했다면, 그 다음부터는 더 간단하게 push할 수 있음

$ git commit -am "add b"
#git commit 명령에서 -am 명령은 스테이징 옵션(-a)과 메세지 옵션(-m)을 함께 쓴 것으로, 최소한 한번 이상 커밋한 파일(tracked파일)이어야 사용할 수 있습니다.
$ git push
#이미 앞에서 원격 저장소로 푸시하면서 사용자 인증했으므로 이제부터 파일을 푸시할 때는 git push라고 입력
  • 원격 저장소에서 커밋 내려받기
#터미널창에서 loc-git 디렉터리로 이동 후 ls 명령을 이용해 디렉터리 안 내용 확인,
#원격저장소에서 커밋을 pull 할때는 git pull 명령을 사용함
$ git pull origin main
#원격 저장소를 origin으로 지정, 지역 저장소의 기본 브랜치인 main으로 pull

2. 깃허브에 SSH 원격 접속하기

  • SSH (secure shell) : 강화된 안전한 방법으로 정보를 교환하는 방식
    - 프라이빗 키(private key) + 퍼블릭 키(public key) 한쌍으로 묶어서 컴퓨터를 인증한다.

If ) 서버환경에서(in Terminal) 깃허브 저장소에 접속해야 한다면, 서버 자체에 깃허브를 등록(위에서 했음)

Else ) 따로 인증하지 않아도 깃허브에 개인 노트북으로 접속한다면 노트북을 깃허브에 등록해 둔다.

$ cd ~
$ ssh-keygen
#후 enter 두번 더 누르면 ssh접속을 위한 비밀번호가 만들어짐
#id.rsa가 프라이빗 키이고, id.rsa.pub가 퍼블릭 키이다.
  • 깃허브에 SSH 방식으로 접근하려면 사용자 컴퓨터에 만들어져있는 퍼블릭 키를 깃허브로 전송해야함.
    사용자 컴퓨터에서 깃허브 저장소에 접속하면
    → 사용자 컴퓨터에에 있는 프라이빗 키와 깃허브 서버에 있는 퍼블릭 키를 비교
    → 이 두 keys 는 한쌍이므로, 서로 맞으면 연결 접속 OK
$ clip < ~/.ssh/id_rsa.pub
#나는 왜인지 모르겠는데 이게 안돼서
$ cat ~/.ssh/id_rsa.pub
#공개 키가 출력되면 복사 (copy) → GitHub에 붙여넣기할 예정
→ setting에 들어가서 [Add SSH Key] 클릭 후 SSH 붙여넣기
  • SSH 주소로 원격 저장소 연결하기
    - [New repository] 선택 후 새로운 저장소 만들기
    - 기본적으로 HTTPS 방식 주소가 나타나므로 → SSH 방식을 선택해 주소 복사
$ cd ~
$ git init connect-ssh
#connet-ssh라는 디렉터리를 지역저장소로 만듦
$ cd connect-ssh
$ git remote add origin (복사한 주소 붙여넣기)
$ git remote -v
#어떤 원격 저장소가 연결되었는지 확인
$ git push -u origin main

HTTPS와 SSH는 접속 방식만 다를 뿐 지역 저장소와 원격 저장소를 연결하는 방법, push/pull하는 방법 모두 같다.

3. 깃허브로 협업하기

원격 저장소를 지역 저장소 외에 다른 지역에서 사용하려면, 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야함.
→ Clone, Cloning이라 함.

  • 깃 허브에 있는 원격 저장소 하나에 접속해 HTTPS 탭에 주소를 복사
$ git clone(원격 저장소 주소 복사 붙여넣기) git_home
#원격 저장소 있는 그대로 복제하면서, 동시에 git_home 디렉터리도 만들어짐
$ git clone(원격 저장소 주소 복사 붙여넣기) git_office

원격 저장소와 연결되어 있는 회사 컴퓨터에서 작업하려면

먼저 원격 저장소에 올라온 커밋을 가져와야 한다.

→ 하나의 원격 저장소에 지역 저장소가 2개 이상 연결되어 있을 때,

" 지역 저장소에서 작업하려면 원격 저장소의 변경사항을 먼저 가져와야 한다."

$ cd ~/git_office
$ git pull
#원격 저장소에 새로 올라온 커밋을 그대로 가져오기
  • 원격 브랜치 정보 가져오기
$ cd ~/git_office
$ git fetch
#지역저장소로 이동 후, 원격 저장소의 브랜치를 모두 불러온다.
$ git log --oneline
#origin/main이 보이지 않다면, 원격 저장소의 최신 커밋 정보를 가져왔지만, 아직 합치지 않은 상태.
$ git diff HEAD origin/main
#현재 최신 커밋과 원격 저장소에서 가져온 커밋의 차이를 알 수 있음. -> 파일이 새로 생김.
$ git merge origin/main
원격 저장소의 커밋을 확인하고, 지역 저장소에 합치기 (pull 명령 사용 가능)

git fetch를 사용해 원격 브랜치를 가져온 다음, git merge 명령을 사용해 원격 브랜치와 현재 브랜치를 합쳐주는 것을 git pull 명령으로 한꺼번에 처리하는 것.

profile
Disciplined, Be systemic

0개의 댓글