메타코딩 -무작정 깃허브 찍먹하기 -5- (Github push & pull 및 github clone 해보기)

2023. 3. 1. 00:53프로젝트 관리/github

이번 시간에는 Github를 배워보자. 배우면서 remote라는 명령어가 있는데 같이 배워보자.

우선 github홈페이지로 가서 신규 repository를 myapp 이라는 이름으로 생성 해 주자. (모르겠다면 찍먹 1탄에 기록되어 있음..) 지금까지 어떤 상태인지 그림으로 간단하게 알아 보자.

현재 다른 사람의 컴퓨터가 있는데 그것은 깃헙컴퓨터이고, MS사 것이다. 해당 컴퓨터 안에 myapp이라는 폴더가 만들어 졌다. 해당 폴더로 접속 가능한 주소가 분홍색으로 적혀 있는 것이고, 이런 형식으로 본인 컴퓨터가 아닌 다른 사람의 컴퓨터에 나의 저장소를 들고 있는 것을 클라우드 저장소 라고 부른다. 특이한 것은 그냥 저장만 가능하게 해 주는 것이아닌 분산버전관리가 가능한 것을 말한다.

현재 클라우드 저장소 myapp이라는 폴더안에 git init이 되어있는 상태이다. 그러면 로컬에서 실습할 폴더를 구성 해 주자.

우선 gitworkspace를 들어가서 ex10.company와 ex10.home을 생성 해 주고, company 폴더안에.. myapp이라는 폴더를 생성 해 주자.

그 후 컴퍼니 폴더 => myapp 으로 들어가서 CLI를 켜 주고 init 후 프로젝트 설정 파일 생성, add & commit을 해 준다.

지금까지 만들어진 상황을 그림으로 요약 하자면 컴퍼니 폴더에 myapp 폴더를 깟고, git 생성 후 프로젝트 설정 파일 생성을 했고.. git add, commit을 완료 한 상태이다. 여기서 지금 하고싶은건 깃허브 컴퓨터에 생성한 myapp폴더에 업로드를 하고싶은 것인데.. 이 때 중요한 키워드가 있는데. github 클라우드 저장소의 명칭을 origin이라고 부른다. (*꼭 기억하기) 그러면 이제 오리진에 연결을 해야하는데.. 이 때 사용하는 명령어가 3번 git remote add origin http주소 이다. 한번 연결 해 보자.

주소는 github repository에서 복사해서 마우스 우클릭 paste 해주면 되고.. 그러면 명령 후 잘 연결되었는지 확인해야 할것인데.. 이때는 두가지 선택지가 있다. git remote의 -v라는 속성과, git ls-remote 가 있다. 강의에서는 gir ls-remote를 기억 하라고 한다. 이러면 연결이 잘 된 것을 볼 수있다. 이제 업로드를 해보자.

그 전에 그림으로 개념을 간단히 살펴보자면.. 로컬에 master라는 브랜치가 있고, origin에 master라는 브랜치가 존재하는 것이다. 현재는 로컬 master 브랜치에는 프로젝트 설정 커밋이 찍혀있는 것이고 origin/master 브랜치에는 아무것도 없는 상태인데.. 그럼 이제 업로드를 한다는 것은 파일만 업로드를 하면 될까?.. 아니다.. 파일 업로드 후에 병합(merge)을 해줘야한다. 이 때 사용하는 용어를 push해 준다고 한다. (*기억하자 자주 쓰는용어)

그러면 push 명령어를 사용 해 보자. 

명령어를 입력 하면.. sign in 연결 로그인 인증 같은 창이 뜨는데 현재 웹페이지에 로그인이 되어있으니.. 위에 파란 버튼을 클릭 해 주면 뭐 아이디 비밀번호 치라.. 인증해라 뭐뜨는데 다 해주면 

CLI창에서는 이렇게 뜨고 깃헙 페이지를 가서..  F5를 눌러서 새로고침 해보면..

이렇게 오른쪽에 1commit이 뜨면서.. 브랜치를 내려보면 master브랜치가 생겼고.. 프로젝트 설정완료 1hour ago 라고 해당 파일이 언제 수정되었는지 까지 나온다.

해당 파일을 눌러보면 이런식으로 Empty file. 이런식으로 파일 내에 뭐가들어있는지 비어있는지 까지 나온다. 

이상 여기까지 Github Push하기.. Push 란 upload + merge의 개념..

 

이제 다운로드의 개념은 pull을 해 보자. 이때까지 회사에서 작업을 하다가 집에 왔다고 생각을 해 보자.

그러면 이제 gitworkspace에 있는 ex10.home 폴더를 들어가서 git bash를 켜 주고 git init을 하고, 원격 저장소와 연결을 해 보자.

저장소 가서 <>Code를 누르면 주소가 나온다 복사 후 git remote add origin 명령어에 붙여넣고 입력 하자.

명령어를 입력 했으면 제대로 연결 된 것이 맞는지 git ls-remote 명령어를 입력 해 보면, From에 주소연결 되어있고, 해당 해쉬 값에 헤더가 있고, 지금 뭘 보고있냐는 것은 원격 저장소에 있는 master branch를 보고 있다는 것 까지 알려준다.

그러면 만약에 내가 git remote add origin을 주소를 이상하게 입력이 되어서 다른 이상한거랑 연결되었다면 어떻게 해야할까??.. git remote rm origin 명령어를 입력 해보면 삭제가 되고 git ls-remote를 하면 연결이 끊긴 것을 확인 할 수 있다.

그럼 이제 잘 연결 되었으니 다운로드를 받아 보자.

git pull origin master 명령어를 입력 하면 다운로드가 완료된다. 그리고 home 폴더를 보면 파일 제대로 다운로드 되었고, git log를 확인 해보면 로그도 제대로 다운로드 되었다.. 그러면 git pull은 여기까지..

 

이제 이때까지 한 것은 생성했고 뭐.. remote 연결 했고.. 다운로드도 해봤다. 여기서 pull은 다운로드 해서 merge까지 해 주는 것이고 push는 업로드 후 merge를 하는 것인 걸 기억하도록 하자..

근데 이 세 개를 한번에 해주는 명령어가 있다.. 바로 git clone명령어 이다. 한번 써보자.

쓰기 전에 gitworkspace에 ex10.pcroom 폴더를 만들자.

그러면 pcroom 폴더에서, CLI를 킨 후 간단하다 git clone 원격 저장소 주소를 입력하면 myapp이라는 폴더가 다운로드가 될 것이다. 그러고 git log를 찍어보면.. pcroom에서 찍으면 안나오니 cd myapp/으로 들어가서.. git log를 쳐보면 커밋로그 잘뜨고 myapp 폴더 들어가보면 .git폴더도 있고 다 되어있다는 것을 볼 수 있다. 이렇게 간편하게 쓸 수 있다.

이번 찍먹은 여기까지..