ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git 개념과 기초 사용법
    IT/Git 2020. 6. 27. 10:06
    반응형

     

    개발을 하다 보면 Git이나 GitHub, GitLab 같은 용어를 자주 듣게 됩니다.

    프로젝트에 참여했더니 GitHub에 대해서 물어보는 것도 당연한 일이 되었고, 회사에 입사지원을 하는데도 GitHub 주소를 알려달라고 하더라고요.

     

    저도 사실 Git이 익숙하지 않습니다. 

    SVN은 많이 사용해보았지만, Git은 접한 지 얼마 안 되어서, 공부도 해보며 하나씩 하나씩 정리해보려고 합니다.

     


     

    출처 : https://git-scm.com/

     

    Git 이란?

    분산 버전 관리 시스템 (프로그램)

    버전은 프로그램의 변경사항을 말합니다. Git을 사용하면 프로그램의 변경 이력을 관리할 수 있습니다.

     

    Git은 저장소가 내 컴퓨터에 존재합니다. 그렇기 때문에 속도가 빠릅니다.

    그리고 다른 사람과의 작업을 원한다면 내 컴퓨터의 저장소를 원격 저장소에 연결하면 됩니다.

     

    Git의 장점으로는 무엇보다 빠릅니다. Commit을 로컬 저장소에 하기 때문에 네트워크를 거치지 않기 때문에 당연히 빠를 수밖에 없으며, 네트워크가 불안한 상황에서도 작업을 계속할 수 있습니다.


    Git 개념

     

    1) Repository (저장소)

    레포지토리는 말 그대로 파일 등이 저장되는 저장소로, 즉 프로젝트 폴더를 말합니다.

     

    저장소의 종류는 아래와 같습니다.

    Remote Repository (원격 저장소) : 원격 서버에 저장된 저장소로, 여러 사람이 함께 공유합니다.

    Local Repository (개인 저장소) : 우리가 직접 관리하는 저장소로, 내 PC에 저장되어 있습니다.

     

    출처 : https://cupjoo.tistory.com/6

     

     

    2) Stage

    깃이 파일의 변경 내역을 저장하는데 곧바로 저장하는 것이 아니라, "스테이징"이라는 단계를 거칩니다.

    스테이징은 변경사항 중에서 "저장하고 싶은 부분만 선택해 임시로 저장"하는 개념입니다. 

    스테이징 된 파일은 커밋 직전 상태로 변경됩니다.

     

    스테이지에 넣기 위해서는 아래의 코드를 입력하면 됩니다.

    git add filename
    
    -- 폴더의 전체 변경 사항을 지정
    git add .
    

     

     

     

     

     

    3) Commit 

    커밋은 폴더의 변경 내용을 저장하는 단위를 커밋이라고 합니다.

    먼저는 스테이징 상태에 두어야만 비로소 커밋을 만들 수 있습니다. 

    스테이지에 있는 내용으로 커밋을 만들려면 'git commit' 명령어를 사용합니다.

    git commit
    
    -- 에디터를 열지 않고 터미널에서 바로 메시지를 입력할 수 있는 -m 옵션도 자주 사용
    git commit -m "커밋메시지"
    
    -- 한번에 전부 커밋
    git commit -a

     

     

    4) Log

    스테이징을 거쳐 커밋한 목록을 "로그(log)"라는 형식으로 볼 수 있다.

    git log

     

     

    5) Branch

    깃에서 또 중요한 개념은 "브랜치(branch)"입니다. 로그에서 보는 것처럼 깃이 관리하는 변경 이력은 계속 늘어납니다. 나무를 예로 들자면, 나무가 자라나면서 또 다른 가지를 뻗게 되는데 깃도 이런 방식의 가지를 만들 수 있고 이런 것을 브랜치라고 합니다.

     

    지금 하고 있는 작업과 성격이 다른 작업을 할 때 브랜치를 만듭니다. 개발 중인 기능을 만들다가 새로운 기능을 만들어야 한다면 브랜치를 새로 만들어 신규 개발하는 방식입니다.

     

    깃은 기본적으로 master라는 이름의 브랜치를 하나 가지고 있습니다. branch 명령어로 브랜치 목록을 확인할 수 있습니다.

    git branch

     

     

    6) Checkout

    현재 위치한 커밋에서 다른 커밋으로 이동하는 것을 체크아웃이라고 합니다. 체크 아웃을 통해 현재 커밋에서 같은 브랜치 내 다른 커밋으로 이동하거나, 다른 브랜치 내 커밋으로 이동할 수 있습니다. 

    결론적으로 체크아웃으로 인해 이전 시점의 버전으로 되돌아 갈 수 있고, 다른 사람의 브랜치로 전환해 다른 개발자들의 코드 진행 상황을 확인해 볼 수 있습니다.

    -- 브랜치 선택
    git checkout 브랜치명

     

     

    7) Clone

    클론은 원격 저장소로부터 특정 프로젝트를 통째로 내 로컬 저장소에 다운받는 것을 말합니다.

    git clone 원격 저장소 주소

     

     

    8) Push

    푸쉬는 현재 내 로컬에서 작업한 변경 사항들을 원격 저장소에 반영하는 것을 말합니다. 작업이 완료될 때마다 원격 저장소에 푸쉬해야 다른 사람들이 내 코드를 확인할 수 있습니다.

    git push origin 브랜치이름

     

     

    9) Pull

    풀은 원격 저장소에서 변경된 사항들을 내 로컬 저장소에 반영하는 것을 말합니다.

    Push와 정 반대의 개념으로, 다른 사람이 Push를 해서 원격 저장소에 코드를 업데이트하면 우리는 해당 코드를 Pull 하여 로컬의 코드를 업데이트합니다. 이때 기존의 코드와 내 코드가 다른 경우 Merge를 통해 내 코드를 합치게 됩니다.

     

    Clone과 개념이 헷갈릴 수 있는데, Clone은 프로젝트를 처음 불러올 때 프로젝트 전체를 다운받는 것이지만, Pull은 해당 프로젝트에서 변경된 사항들만 다운받는 것을 말합니다.

    git pull

     


     

    반응형

    댓글

Designed by black7375.