본문 바로가기

프로그래밍 공부내용/Git & Tools

1. Git 기본 개념

1. 깃이란 무엇인가? 왜 쓰는가?

 

과제를 하다 보면 항상 파일관리하는게 문제였습니다.

 

 

졸논_예비

졸논_최종

졸논_진짜최종

졸논_진진진짜최종

 

이런식으로 쓸 데 없이 파일을 정리하게 되는 일이 잦았고,

'저번에 지웠던 내용이 어디 있을까?'

'이 내용은 예전엔 넣었다 뺐는데 이번에 다시 넣고 싶어'

이런 생각이 들 때마다, 정리안된 책장에서 책을 찾는 것 처럼 골머리 아픈 상황들이 많이 생겼습니다.

 

게다가 팀원들이랑 같이 작업을 하면서 파일을 관리하는 경우에는 있어야 될 게 없고 중구난방에...

팀원이 제 파일을 덮어씌워 버리는 아찔한 상황들이 꽤 많았습니다.

 

 

깃을 왜 알아야 하는가?        =>        정리를 잘 하기 위해서

 

 

기술을 배울 때 항상 제일 중요한 것은 용도와 의도를 파악하는 것이라 생각합니다.

깃의 주 용도는 정리를 잘 하는 것이라고 생각합니다.

 

팀으로 했던 제 졸논 프로젝트처럼.. 개인, 팀이 관리하기 쉽도록 하는게 깃의 목표입니다.

 

파일이 2만개있는데 일일이 '졸논_진진진진진짜최종' 이렇게 관리할 순 없잖아요?

이걸 대신 해주는 녀석이 Git 이란 녀석입니다.

그리고 좀 멋있는 말로 '분산형 버젼 관리 시스템' 이라고 하죠.

분산형에 대해서는 다음에 차차 알아보도록 하겠습니다.

 

 

 

2. Repository

 

파일이 저장 된 공간을 Repository라고 합니다.

줄여서 레포(repo)라고도 많이들 부르는 것 같습니다.

기회가 된다면 외국분들도 이 긴걸 줄여서 부르는지 확인해 보고 싶네요 :)

 

레포는 두 종류가 있습니다.

당연하게도 PC에서 작업을 했다면 PC에 파일이 있을겁니다.

내 PC에 파일이 저장된 장소를 좀 멋있는 말로 바꿔서 로컬저장소(Local Repository) 라고 합니다.

 

그러나 전에도 말했듯이 팀프로젝트를 하는데 내 PC에 다른사람이 접근하는건 비효율적입니다.

보안상의 이슈도 있고, 실수로 팀원이 제 파일을 건드려 버릴 수 있고 다른 여러 이슈들이 있을겁니다.

그래서 공용 게시판 같은 느낌의 저장소를 따로 만들 수 있습니다.

이걸 원격 저장소 (Remote Repository)라고 합니다.

 

로컬 저장소의 내용을 원격 저장소로 옮기거나,

원격 저장소의 내용을 로컬 저장소로 옮길 수 있습니다.

 

가장 많이 쓰게 되는 방식은

원격저장소에서 내 PC로 파일을 받아온 다음 수정해서 다시 원격저장소에 올리는 식이 되겠습니다.

 

 

 

3. Commit 커밋

 

개발자가 되기로 한 이후로 1일 1커밋이라는 말을 여기저기서 들었습니다.

커밋은 쉽게 말하면 기록을 작성하는 것입니다.

파일을 작업했다면 변경사항들이 생길겁니다.

 

예를들면 제 '졸논_최종' 에서 소개글을 수정해서 '졸논_진짜최종'을 만들었다면 바뀐 소개글이 변경 내용이겠습니다.

 

이 변경 이력을 기록하는 것이 커밋입니다.

이 변경 내용을 델타 라고 부르기도 합니다.

여러 사람들과 작업한다면 무엇이 변경 되었는지 알기 쉽게 Commit Rule 을 적용하기도 합니다.

 

AngularJs Commit Message Conventions과 같은 유명한 룰들이 있습니다.

차차 공부해 가도록 하겠습니다.

 

 

  git commit -m ("변경점 설명") 으로 실행할 수 있습니다. 

 

 

4. Push

로컬 저장소의 변경내용(커밋 된) 것을 원격 저장소에 저장하는 것을 Push라고 합니다.

 

 

5.Clone

반대로 원격 저장소의 내용을 내 PC에 가져오는 것을 클론(clone)이라고 합니다.

 

깃헙을 보시면

이렇게 다운로드와 클론이 보입니다.

 

둘다 파일을 내 PC로 가져올 수 있다는 것은 동일하나 클론의 경우는 커밋내용까지 가져오게 됩니다.

하지만 다운로드는 말 그대로 파일 자체만 컴퓨터에 다운받게 됩니다.

 

 

  git clone (저장소 url) 

 로 수행할 수 있습니다.

 

 

 

6. Pull

여러명이 원격저장소를 쓸 수 있습니다.

만약 조원이 졸논파일을 원격저장소에 수정했다면 내 PC에도 똑같이 적용하고 싶을 수 있습니다.

이걸 풀(pull) 이라고 합니다.

 

 

 

 

 

7. Git Gui

소스트리와 같은 GUI를 제공하는 걸 사용하면 더 편리할 수 있습니다.

개인적으로 저도 편리해서 소스트리를 사용하고 있습니다.

명령어를 쓰지 않고 버튼을 이용해서 쉽게 커밋,풀,푸쉬 등 기능을 사용하고 기록도 쉽게 볼 수 있습니다.

 

 

 

 

 

 

참조 :

https://backlog.com/git-tutorial/kr/intro/intro1_1.html

https://learngitbranching.js.org/?locale=ko

'프로그래밍 공부내용 > Git & Tools' 카테고리의 다른 글

기깔나게 협업하기  (0) 2022.10.25
pull을 통해서 페어가 작업한 내용 가져오기  (0) 2022.05.04
clone 에 관하여  (0) 2022.04.25
깃 pr merge 이후  (0) 2022.04.02