ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] git 사용법 튜토리얼3 - 깃 허브와 연동하기
    👀 etc... 2020. 6. 22. 16:08

     


    git 사용법 튜토리얼 시리즈

     

    1 초기화, 스테이징, 커밋, 되돌리기 

    2 깃 브랜치(branch) 같은 파일로 여러 버전 만들기 

    3 깃허브와 연동하기

    4 브랜치 원격에서 다루기

    5 PR (Pull Request) & Issue

    6 오픈 소스 기여하기

     

     


     

     

    깃허브(GitHub) 란?

     

    깃을 사용해서 클라우드를 쓰듯이 소스들을 업로드해서 저장하고, 다른 개발자들과 공유, 협업 할 수 있는 깃 저장소들 중에 대표적인 것으로 Bitbucket, Gitlab, Github가 있는데요. 그 중 깃허브가 가장 유명합니다. 깃허브는 전세계의 가장 많은 프로그래밍 코드들이 올려져있고, 수 많은 오픈소스 프로젝트들이 모든 사람들에게 공개돼서 세계 곳곳의 뛰어난 프로그래머들의 고퀄리티 코드들을 자유롭게 볼 수 있고, 지구 반대편의 개발자들과 서로의 코드에 대해 조언하거나 참고할수도, 오류를 고쳐주거나 기능을 개선해서 기여도 할 수 있는 오픈소스의 성지입니다.

     

    깃과 깃허브에 익숙해진다면,

    내 소스들을 안전하게 깃허브에 저장하고, 다른 팀원들과 수월하게 협업을 할 뿐 아니라, 깃허브라는 방대한 코드의 숲에서 전세계 뛰어난 개발자들과 함께하는 경험을 할 수 있을 것입니다.

     

     


     

     

    ● 튜토리얼3

     

    : 깃허브 사용하기

     

    저번 포스팅에서 테스트할 때 사용했던 gitTest라는 폴더를 그대로 사용합니다. git init과 git config 등 초기화 되었다고 가정.(1편 참조)

     

    ※ git config --global 명령어는 해당 컴퓨터에서 한 번 입력했으면 다른 프로젝트를 생성하더라도 또 할 필요는 없습니다.

     

     

    1. 깃허브 접속

     

    계정이 없다면 회원가입 후 로그인 합니다.

     

     

    처음 접속하면 다음과 같은 화면이 뜨는데 "Create repository"를 클릭하여 저장소를 생성해줍니다.

     

     

    이 깃으로 관리되는 레파지토리 하나가 원격으로 저장되는 공간입니다. 원하는 저장소명과 간단한 설명 입력 후, Create repository 버튼을 클릭하면 저장소가 생성됩니다. Public을 선택하면 내 레파지토리를 모든 사람에게 공개하게 되고 Private는 나와 내가 초대한 사람만 이 저장소를 볼 수 있게 하는 옵션입니다. 만든 후에도 변경 가능한 옵션이기 때문에 크게 고민하지 않으셔도 됩니다.

     

     

    이 후 간단한 명령어에 관한 설명이 뜨고요. 저 노란줄 쳐진 내 저장소의 주소를 이용해서 로컬 저장소에 연결해 볼 것입니다. 

     


     

    2. 깃허브에 내 소스 올리기

     

    이번에 vs code 터미널을 git bash와 동일하게 컬러풀하게 볼 수 있는 설정을 조금 해놨습니다.

    지금 내가 있는 브랜치를 볼 수 있으니 좋아요. 설정하는 법은 링크 를 참고해주세요.

     

     

    먼저 git status를 통해 지금까지 한 작업이 모두 커밋되었는지 확인합니다.

     

     

    이후, git remote 명령어를 입력.

    git remote

    현 폴더의 원격 레파지토리를 확인하는 명령어 입니다.

     

    설정한 적이 없기 때문에 아무것도 뜨지 않죠?

     

     

     

    git remote add 원격저장소이름 https://github.com/유저네임/레파지토리네임.git

    아까 확인한 깃허브의 내 저장소의 주소를 이용해 원격저장소를 생성하는 하는 명령어 입니다. 이 명령어를 이용하면 내 피씨의 작업폴더와 깃허브의 온라인 저장소가 연동되게 됩니다. 

     

    브랜치의 기본이름이 master인 것처럼, 원격 저장소의 기본 이름은 origin입니다.

     

    원격저장소를 생성 후, 연결(원격 저장소에 로컬 저장소 내용 그대로 집어넣기) 해줍니다.

    git push -u origin master

     

    만약 컴퓨터에서 처음 사용하는 계정이라면 유저네임과 패스워드를 물어볼텐데, 본인의 유저네임과 비밀번호를 입력해주면 됩니다. 연동이 완료되면, 이 컴퓨터(로컬)의 Master브랜치가 원격의 마스터 Origin을 추적한다는 메세지가 제일 마지막에 뜨게 됩니다.

     

    master -> master : 내 컴퓨터의 마스터 브랜치에서 깃허브 원격저장소의 마스터 브랜치로 갔다.

     

     

    작업이 완료되서, 해당 깃허브 저장소로 이동해보면, 이렇게 로컬의 작업 내용이 그대로 넣어진 것을 볼 수 있습니다.

     

    파일의 소스코드도 볼 수 있고, 커밋 메세지를 누르면 해당 커밋에서 어떤 변화들이 일어났었는지도 확인 할 수 있습니다.

     


     

    3. 소스코드 수정 후 업데이트

     

    수정 후 마찬가지로 add, commit, push 해주면 됩니다.

     

    git add 파일명
    git commit -m "msg"
    git push origin master

     

     

    그러면 수정된 내용이 깃허브의 원격 저장소에 반영됩니다. 저는 dog2 파일을 삭제 후, add, commit, push를 진행하였습니다.

     

    원격저장소에도 잘 반영된 것을 볼 수 있습니다.

     


     

    4. .gitignore 파일

     

    프로젝트를 진행하다 보면, 깃으로 관리하고 깃허브에 올릴 필요가 없거나 오히려 올리면 안되는 파일들이 있습니다. 코드를 실행하면 패키지가 다운받아지거나, 코드대로 빌드되어 자동으로 생성되는 파일들은 어차피 코드만 있으면 그때그때 실행해서 만들 수 있는데 굳이 깃에 무리를 주거나 깃허브 용량을 차지할 필요가 없겠죠.

     

    또, 보안적으로 중요한 내용 예를 들어 DB계정 등이 담긴 파일은 공개되면 안될 것입니다. 이럴 때 사용되는 것이 .gitignore 파일입니다.

     

    .gitignore 과 secrets라는 파일을 생성합니다.

     

    이후 .gitignore 파일에 숨기고 싶은 파일 이름을 지정해주거나 숨기고 싶은 확장자의 모든 파일 예를 들어 모든 텍스트 파일을 숨기고 싶을 땐 *.txt 등 입력해서 저장해서 add, commit, push하면 .gitignore 파일에 작성된 파일은 깃허브에 업로드 되지 않습니다.

     


     

    5. 다른 사람 초대하기

     

     

    해당 레파지토리에서 Settings -> Collaborators 를 클릭하고 깃허브의 유저네임이나 이메일을 입력하여 초대하면 됩니다.

     


     

    6. 깃허브에서 소스 내려 받기.

     

    예를 들어 회사에 있는 컴퓨터로 작업 후 깃허브에 올린 후 집에 와서 깃허브에서 소스를 내려받아 이어 작업한다고 가정해 봅시다. 이 테스트를 위해 저는 그냥 같은 컴퓨터에 폴더를 2개 생성하여 시뮬레이션 해보도록 하겠습니다.

     

     

    먼저 내려받을 깃허브의 원격 저장소로 이동 후, Clone or download 버튼을 클릭하여 주소를 복사합니다. 

     

     

    복사 할 폴더를 하나 생성해 줍니다.

     

     

     

    집 컴퓨터에서 작업이라고 가정

    그리고 그 폴더를 IDE로 연 후, 터미널을 열어주고 다음 명령어를 입력합니다.

    git clone https://github.com/유저네임/원격저장소이름.git

     

     

    집 컴퓨터에서 작업이라고 가정

    이렇게 되면 gitTest_clone 폴더 안에 원격 저장소의 gitTest 파일이 내려받아지게 됩니다.

    cd gitTest

    내려받아진 폴더로 터미널을 이동시켜줍니다.

     

     

    그리고,

    git log

    git log 명령어를 통해 로그를 확인해보면 이전에 작업했던 내용이 그대로 복사된 것을 볼 수 있습니다.

    집 컴퓨터에서 작업이라고 가정

     


     

    7. 작업 주고 받기

     

    gitTest_clone 폴더가 컴퓨터에 있고,

    gitTest 폴더가 회사의 컴퓨터에 있다고 가정합시다.

     

     

    집 컴퓨터에서 작업이라고 가정

    집에서 먼저 zipWork 파일을 생성하고 여러 작업을 수행하고 add, commit을 합니다. 이 때 반드시 gitTest_clone안의 gitTest 폴더에 작업을 수행해주어야 합니다.

     

     

    ※ 깃 커밋 메세지 작성 규칙

     

     

    이 후, git push origin master를 통해 원격 저장소에 변경 사항을 업로드 합니다.

    집 컴퓨터에서 작업이라고 가정

    그리고 원격 저장소에 들어가서 확인해보면 변경 사항이 업로드 된 것을 확인할 수 있습니다.

     

     

    이렇게 일일히 원격저장소에 들어가서 확인하기 번거롭다면 다음 명령어들을 사용하여 확인할 수 있습니다.

    변경사항이 반영되지 않은 원래의 폴더 즉, 회사에서의 폴더 gitTest에서 다음과 같은 명령어를 입력합니다.

    git fetch
    git status

     

     

    회사 컴퓨터에서 작업이라고 가정

    이 브랜치가 원격 origin의 마스터에 커밋 하나가 뒤쳐져 있다는 메세지를 볼 수 있습니다.

    깃허브에서 다운받아야 할 사항이 하나 있다는 이야기 입니다. 그럼 다운 받아봅시다.

    git pull 원격저장소명 브랜치명

     

     

    회사 컴퓨터에서 작업이라고 가정

    집에서 작업한 zipWork 파일이 원격 저장소를 통해 다운받아 졌습니다. 커밋 내역까지 다운 받아져 확인 가능합니다. 반대로 회사에서 작업하여 집의 폴더로 다운받는 것도 가능합니다.

     

     

    *반대 버전 : 회사에서 작업해서 집에서 다운받기*

    회사 컴퓨터에서 작업이라고 가정

     

    집 컴퓨터에서 작업이라고 가정

     

    집 컴퓨터에서 작업이라고 가정

     

    이런식으로 팀원가 작업할 때는, 먼저 fetch와 status를 통해 pull할 내용이 있는지 먼저 확인하는 것이 중요합니다. 그렇지 않으면 conflict가 날 수 있기 때문이죠. 이렇게 분업을 하는 경우 pull할 내용이 있을 경우 pull해주지 않으면 push를 할 수 없습니다.

     

     

     

    다음 편에는 이렇게 작업 내용을 주고 받듯, 브랜치도 주고 받는 방법에 대해 알아보겠습니다.

     

     


    깃 튜토리얼 시리즈

    깃의 장점, 사용 이유, 기초 사용법

    2020/06/19 - [SW개발/Framework Library] - [Git] git 사용법 튜토리얼1 - 초기화, 스테이징, 커밋, 되돌리기

    깃 브랜치 사용법

    2020/06/22 - [SW개발/Framework Library] - [Git] git 사용법 튜토리얼2 - 깃 브랜치(branch) 같은 파일로 여러 버전 만들기

    깃 허브 연동, 협업

    2020/06/22 - [SW개발/Framework Library] - [Git] git 사용법 튜토리얼3 - 깃 허브와 연동하기

    깃 브랜치 주고받기, 충돌 다루기

    2020/06/23 - [SW개발/Framework Library] - [Git] git 사용법 튜토리얼4 - 브랜치 원격에서 다루기

     


     

     

    댓글

Designed by Tistory.