Git 이란 뭘까 ? Git에 관한 것들

김희준·2023년 4월 12일
0

공부

목록 보기
1/2
post-thumbnail

🚗Git 이란 무엇인가 ?

깃(git)은 2005년에 리누스 토르발스에 의해 개발된 ‘분산 버전관리 시스템(Distributed Version Control Systems -DVCS)’로 , 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용.
하나의 개발 프로젝트에 여러명의 개발자가 참여할 때 , 소스코드를 관리하는데 주로 사용된다.

이런 내용을 조사하기 전엔 간단한 클라우드 저장소정도로 생각하고 있었다.

🚌버전관리 시스템이란 ?

버전관리 시스템(VCS)은 파일 내 변화를 시간의 흐름에 따라 기록했다가. 이후 필요한 상황에서 그 파일을 꺼내 올 수 있는 시스템을 말한다.

그러면 이런 시스템이 왜 필요 할까 ?

우리가 어떤 파일을 작성할 때 처음 완료하여 저장하면 파일 A가 생성되고 파일을 수정하여 덮어 씌우면 파일 B, 다시 수정한다면 파일 C가 된다. 여기서 파일 C의 내용이 필요가없어져 파일 B의 상태로 돌아가려할 때 파일을 덮어 씌웠기 때문에 돌아갈 수 없다.
이러한 문제를 대비하여 활용할 수 있는 것이 버전 관리 시스템이다. 특정 파일을 두고 수정 하였을 때 , 파일이 버전이 업데이트된다면 업데이트정보를 누가, 언제 ,어떤 내용을 수정 했는지 확인 할 수 있다.
만약 혼자 파일을 수정한다면 필요도나 중요성이 떨어지겟지만 파일 하나가 아니고 저장소라면?
저장소를 사용하는 사용자의 수가 여러명이라면 ? 버전관리 시스템의 필요성,중요성은 말할 필요 없이 높을 것이다.

🚝버전 관리 시스템의 종류

  • 로컬 버전 관리 시스템(Local VCS)
  • 중앙 집중식 버전 관리 시스템(Centralized VCS)
  • 분산 버전 관리 시스템(Distributed VCS) -> Git이 해당

🚓Git의 사용 이유?

버전 관리시스템의 장점을 그대로 가져와 쉬운 버전관리가 가능하다.
많은 코드들을 다루고 여러 개발자들과 협업을 진행 하다 보면 많은 업데이트 사항이 생긴다.
이런 업데이트 때마다 파일을 새로 저장하거나, 이전 버전을 폐기하는등 여러 과정이 생기고, 따로 처리 하지않을 때는 많은 오버헤드가 생겨날 수 도 있다.
Git을 사용하면 이러한 번거로운 과정 없이 다른 개발자들과 함께 코드를 업데이트 할 수 있으며 , 여러 명이 동시에 한 코드를 가지고 작업하는 병렬적인 작업의 진행이 가능하다.

앞서 이야기했던 이전 버전으로 돌아가는 것 또한 자유롭고 git은 분산 버전 관리 시스템이기에 중앙 서버 없이 작업이 가능하며, 복구가 쉽다는 장점 또한 있다.

🚠Git 과 Github?

Git

  • 직접 소스코드의 버전을 관리
  • 로컬에서 버전 관리
  • 개발 및 소스 코드 관리에 사용하는 도구

Git hub

  • Git을 사용하는 프로젝트를 지원(git repository)
  • 클라우드를 통해 관리되는 버전 관리

Git hub는 Git저장소를관리 하는 클라우드 기반 호스팅 서비스이며 git의 기본적인기능을 확장하여 제공한다. 로컬에서의 git 저장소를 git hub의 클라우드 저장소에 올려두고 버전 및 소스 코드 관리 를 한다.
중요한 차이점은 Git은 로컬 , Git hub는 클라우드 서버를 이용한다.

🦼Git 주요 개념

Repository(저장소) : 소스코드들이 저장되어 있는 물리적인 공간.
보통 하나의 프로젝트를 시작할 때 메인 저장소에서 소스코드를 복사(Clone)이후 소스코드를 변경한다음 Commit한다. Commit은 로컬 저장소에 저장되며 Push는 원격 저장소에 저장된다.

Branch(분기점) : 저장소의 Commit할수있는 새로운 분기점을만들어줌.

Merge*(병합) : 각 Branch들을 합치는 작업. Branch들이 충돌이 일어나지않게(다른 Branch에 없는 내용이 있을 때) 직접 수정하거나 Merge Tool을 활용하여 Merge를 진행한다.

🚢Git 명령어

자주 쓰이는 것 위주로 가져와 정리해 보았다.

 Git init : directory를 git을 사용할수 있게 초기화 해주고 필요한 파일들을 생성한다.(.git 폴더가 생김)

 Git status: 저장소의 현재 상태를 확인.

 Git add : 커밋에 파일 변경사항을 포함하도록 한다.

 Git commit : -m 옵션을 사용하여 보통 메시지와 함께 사용한다. Commit을 할때의 날짜나 어떤 내용을 commit햇는지 메모를하여 commit을 진행한다.

 Git push: 소스코드의 변경사항을 원격 저장소에 저장한다.

 Git pull : 원경 저장소의 변경내용이 현재 directory에 반영된다.

 Git merge : 각 브랜치들의 변경사항 등 확인하고 병합한다.

🚀정리를 하고 생각나는 것들...

Git을 예전부터 사용하고 있지만 정확한 개념이나 명령어의 정확한 사용용도 등 제대로 알지 못하고 사용하고있었는데, 이번 기회에 조사를 진행하고 여러 정보들을 배우고 나서 평소에 push, pull이 제대로 이루어지지않을 때 가 머리에 스쳐지나가며 ‘그때 이러한 것들 때문에 충돌이 일어낫구나’하며 다시 생각을 해보는 계기가 되었다.
제일 처음 개념을 잡을땐 이해가 되지않아 그냥 읽고 넘어가 git을 사용하였는데, 다시 공부해보니 그때의 개념과 지금 새로배운것들이 겹쳐저 좀 더 뚜렷하게 알게 되었다.

profile
No passion No jun

0개의 댓글