git

초보자의 입장에서 작성한 git 사용법

J-Mook 2021. 8. 27. 13:05
반응형

!!주의!! 이 글은 정확한 정보보다 초보자가 쉽게 사용할 수 있도록 최대한 이해하기 쉽게 작성하였기 때문에 실제 정보와 다를 수 있습니다. !!주의!!

git hub

취미든 직업이든 코딩 하는사람이라면 누구든 들어봤을 사이트이다.
이 github를 재대로 사용하기 위해서는 git 사용법을 알아야한다.
github는 git을 활용하고, 모아놓기 위한 공간이라고 생각하며된다.

git 주요 명령어

  • git clone -> github의 repository를 로컬저장소에 다운로드
  • git pull -> 로컬저장소에 다운로드된 repository를 최신화
  • git add -> commit하기 전 commit대상 추가
  • git commit -> 임시저장소에 변경사항 저장 (메세지 입력)
  • git push -> commit한 내용을 github에 저장
  • git branch -> 다른버전 혹은 원본을 훼손하지않고 작업가능 (새로운가지)
  • git checkout -> branch이동
  • git merge -> branch에서 작업한 내용을 병합

(로컬저장소 - 사용자 pc)

git clone

이 명령어는 오픈소스를 좀 사용해 봤던 사람이라면 익숙하게 사용해 봤을 명령어이다.

github의 레포지터리를 다운로드하는 방법 중에 하나이다.

스크린샷 2021-08-26 오후 2 35 22


위 사진의 주소를 그대로 복사하여 git clone 뒤에 붙혀주면 그 레포지터리를 pc에 다운로드 하는 것이 가능하다.

  git clone <위에서 복사한 주소>

git pull

git clone은 새로운 래포지터리를 다운받는 것이고, git pull은 다운받아져 있는 레포지터리에 덮어써 주는 기능이다.
쉽게 말해 레포지터리를 업데이트 해주는 명령어 이고, 해당 명령어를 사용하는 레포지터리는 이미 사용자의 pc에 다운받아져 있기 때문에, 해당 위치에서 git pull만 쳐주면 알아서 적용된다.

  git pull

git add, commit, push

이 명령어들은 사실상 한번에 사용하기 때문에 그냥 한번에 설명한다.

commit 이라는 개념이 초심자에게는 이해가 잘 안된다. (나는 그랬다...) 쉽게 설명하면 깃허브에 업로드 하기 바로 전 단계로, 업로드 할 것만 잘 모아놓는 것이라고 생각하면 쉽다.

스크린샷 2021-08-26 오후 2 47 26


위 사진처럼 실제 표면적으로 보이는 부분은 사용자 pc와 깃허브 이기 때문에, 초심자가 이 3개의 개념을 구분지어 한번에 이해하는 것을 어렵다고 생각된다.

하나하나 살펴보자면, git add로 사용자가 수정/개발한 코드를 commit할 준비해주고,
git commit으로 commit 저장소(원격 저장소)에 올려준다.
그리고 git push로 commit한 것들을 볼 수 있도록 게시 해 주는 것이라고 이해하면 쉽다.

  git add <파일>

(뒤에 <파일>을 적어 특정 파일을 add 해도 되지만, git add * 을 사용하면 모든 사항이 저장된다. 귀찮게 파일 하나하나 고르지 않고 싹다 올리고싶다면 git add * 을 사용하자.)

  git commit -m "하고 싶은 아무말(메모)" 

(commit에 다른 많은 옵션들이 있지만, -m을 사용하는 이유는 이 옵션을 사용하지 않게되면, vi 편집기라고하는 초심자에게 30초 뇌정지를 주는 화면이 나오기 때문에 초심자라면 꼭 사용하도록하자!!!!)

  git push   

여기까지 잘 따라왔다면 깃허브에서 파일을 다운받고 업로드하는 것까진 가능 한 것이다.

git branch, merge, checkout

branch 라는 개념과 사용하는 이유에 대해 처음에는 잘 와닿지 않을 것이다. 필자는 베타버전과 오픈버전에 비유하여 쉽게 이해할 수 있었는데, 아래의 그림은 main이라는 오픈버전 브랜치와 devel이라는 베타버전 브랜치가 있다고 가정하고 설명한다.

스크린샷 2021-08-26 오후 3 02 20


처음 v1을 만들고 게시한 후, v2를 개발하고 테스트할 것이다. 개발중인 v2는 공개되면 안되기때문에, devel 브랜치에서 따로 작업하게 된다. 그동안 main 브랜치에는 v1이 공개 되어있고, v2의 개발이 완전히 끝나면 v2를 main 브런치에 병합하여 공개하게 된다. v3는 개발에 실패하게되어 공개하지 않고, v4를 개발하여 작업이 완료되면 main 브랜치에 공개한다.

이러한 메커니즘을 사용하기 위해 branch라는 기능을 사용하게 되는것이다. 필자는 아래와 같은 방식으로도 사용했었다.

스크린샷 2021-08-26 오후 3 12 43

v9의 개발이 끝나고, 게시하는 것을 잊고 v10의 개발이 들어간 것이다. v9 코드 위에 덮어씌워 v10을 개발하고 있었기 때문에, 원래대로라면 v10이 완료되기 전까지 게시를 하지 못하지만, v9을 개발했던 이력이 남아있기 때문에, 현재 v9 코드가 남아있지 않음에도 v9을 불러와 게시 할 수있는 것이다. 이러한 용도로 필자는 사용했으며, 이외에도 다양한 방법으로 활용이 가능하다.

  git branch <브랜치 이름>

git branch는 브랜치를 만드는 명령어로, 필자는 git branch devel 이라는 명령어를 사용하여 위와같은 환경을 만든 것이다.

  git chckout <브랜치 이름>

git checkout은 git branch로 만든 브랜치들 중 원하는 브랜치로 이동하게 해주는 기능이다.

  git merge <브랜치 이름>

git merge가 바로 두 브랜치를 합쳐주는 명령어로, 위의 그림 설명에서 '공개', '게시'라고 표현했던 상황들이 모두 merge에 해당한다.
현재 브랜치에 설정 브랜치를 병합한다.

여기를 이해한다면 사실상 깃을 거의다 이해하고 활용할 수 있게 된것이다. 나머지 기능들은 사용하면서 에러가 발생하거나 하는 특수한 경우이기 때문에, 외우지말고 그냥 구글링을 하는게 더 빠르다.

반응형

'git' 카테고리의 다른 글

github.io 블로그 시작하기[2]  (0) 2021.08.27
github.io 블로그 시작하기[1]  (0) 2021.08.27