본문 바로가기
코딩 아카이브/git 공부

[ Git 공부 ] #1 Git 용어정리

by SteadyForDeep 2021. 3. 30.
반응형

//1 서론

(급한사람은 //4로 ㄱㄱ)

워크스테이션 세팅을 끝내고

무엇을 하면 가장 좋을까 고민을 했다.

나는 컴퓨터 관련 비전공자이므로

코딩테스트를 위한 알고리즘, 자료구조

인터뷰를 위한 컴퓨터구조 개론 정도를 학습하고

기록하는 것이 가장 시급했다.

 

이 모든 과정을 어떻게 기록할지의 문제는

개발자라면 응당 정해져 있는 답을 떠올리게 된다.

바로 깃헙GitHub이다. (기thㅓㅂ 아니다)

 

 

 

//2

이제껏 여러가지 가벼운 툴들을 이용하여서

깃헙을 충분히 잘 이용해왔다고 자부하지만

모두 회사의 일이나 대학원 연구작업을 위한
private 저장소를 이용했고 그러다보니 자연스럽게

깃헙은 쓰면서 git은 전혀모르는

버전관리의 눈뜬 장님으로 살아왔다.

 

따라서 가볍게 깃 공부를 마친 후에

정말 협업을 위한 버전관리는 어떻게 이뤄지는지

그리고 정말 git을 이용한 git hub을 사용할때

어떤 효과가 있는지 그런 것들을 느끼고 공유하고자 한다.

 

//3

물론 깃헙은 당장에 굉장히 필요한 지식이 아니므로

당장에 없으면 굶어 죽을 수도 있는 알고리즘 지식으로

빠르게 나아가기 위해서 가볍게 공부할 것이다.

 

 

 

//4 여기부터 본론

서두가 길었다.

컴퓨터 공부를 하면서 가장 많이 느낀 것은 바로

'언어'를 맞추는 것이다.

이게 컴퓨터 언어를 말하는 것이 아니고

컴퓨터를 깊이있게 다루는 사람들끼리 쓰는 언어를

얼마나 정확하게 잘 알고 있느냐에 따라

지식의 습득 속도가 정말 천차만별로 달라진다.

 

따라서 가장 중요한 git의 용어를 살짝만 정리하고 출발하겠다.

 

//5 git용어 정리

 

- git : 바보, 멍청이, 괴짜, 가치없는 놈이라는 뜻으로 창시자인 리누스 토발즈의 성격이 드러나는 네이밍 센스다. 분산형 버전관리 서비스중 하나이다.

 

리눅스와 git을 만든 리누스 토발즈가 열띤 강연을 펼치고 있다.

 

- repository : 프로잭트를 위한 파일이 저장되어있는 저장소.

        디렉토리에 속하는 개념으로

        git의 버전관리를 위한 데이터베이스가 하위로 존재하는 디렉토리를 의미한다.

       

- commit : 코드의 변경사항이 있을시 변경자가 변경된 모든 내용을 메모하여 기록하는 것.

        이 커밋을 통해서 새로운 버전이 등장한다.

 

- merge : 서로 다른 두 코드를 병합하여 하나의 결과물로 만드는 작업.

        원격저장소의 최신 버전의 코드를 로컬의 코드와 병합하기도 하고

        로컬에서 개발이 끝난 코드를 원격저장소로 업로드하여 병합하기도 한다.

 

- push : 개인이 로컬에서 커밋한 모든 변경사항을 원격저장소로 업로드 하여 병합하는 작업.

 

- pull : 원격저장소의 버전을 로컬에 병합하는 작업.

 

- fetch : 원격저장소의 버전을 로컬로 병합하지 않고 내려받는 작업.

 

- fork : 다른 프로잭트의 저장소에 들어있는 모든 내용을 복사해 와서 자신의 저장소를 만드는 작업.

 

- pull request  : fork하여 온 내용에서 변경사항이 있을 경우 원본 저장소의 관리자에게 pull을 요청하는 작업.

 

- branch : 현 시점의 저장소를 프로잭트 내에서 복사하여 만든 새로운 개발라인.

        fork와는 다르게 프로잭트 내에서 발생하며

        서로 전혀 상관없는 기능들을 탑재하여 충돌없이 안전하게 개발하고자 할때 생성한다.

 

- master : master branch 라고도 하며 맨처음 프로잭트를 시작했을때 생성된 개발라인을 말한다.

 

- github : git의 기능을 이용하여 저장소를 쉽게 서비스할 수 있는 서버.

        이때까지 위에서 설명한 모든 저장소는 일반적인 서버의 개념으로 github이 아니다.

        본 블로그의 워크스테이션 세팅을 보면 우분투 서버로 웹서버를 열고 포트를 개방하여

        접속이 가능하게끔 컴퓨터를 설정하는 작업을 하는데

        원래는 저장소를 꾸리는데도 비슷한 지식과 노동이 필요하다.

        하지만 github은 git을 이용해서 누구나 손쉽게 로컬이 아닌

        remote repository를 생성할 수 있도록 해주는 서비스이다.

 

 

아직 굉장히 적은 정보만 담아두었다.

이 글은 내 공부과정에 맞춰서 지속적으로 업데이트 될 예정이며

그 과정에서 추가되거나 삭제되는 내용이 있을 수 있다.

 

깃 공부이니만큼 push할때는 commit 내용을 꼭 각주로 달도록 하겠다.

 

후딱 끝내고 코테 준비하러 가자.

 

 

 

//commit log

20210330_0123 - 글 작성

20210330_0246 - remote repository와 local repository를 구분하지 않고 작성한 부분을 수정함.
20210330_0413 - git에 관한 설명을 수정함.
* [- git : 바보, 멍청이, 괴짜, 가치없는 놈 (리누스 토발즈의 성격이 드러나는 대목이다 ;;)]
->[- git : 바보, 멍청이, 괴짜, 가치없는 놈이라는 뜻으로 창시자인 리누스 토발즈의 성격이 드러나는 네이밍 센스다. 분산형 버전관리 서비스중 하나이다.]
20200330_0419 - merge, push, pull, fetch에 관한 설명에서 '저장소'로 표기하였던 것을 모두 '원격저장소'로 변경함.

반응형

댓글