Programming/etc

git이란?

조용장 2022. 1. 4. 18:16

요즘 개발자라면 웬만해서는 git에 대해서 잘알고있고 포트폴리오에서 보여주기 때문에 다들 사용하고있습니다. 저 역시 코딩 테스트 기록용, 제가 했던 개발 코드 공유, 회사 프로젝트 관리용으로 사용중에 있습니다.

 

그렇다면 깃은 왜 사용하게 되었을까요? 

현재는 다양한 용도로 사용하지만 주된 용도로는 버전 관리를 위한 목적으로 사용되었습니다. 그 중에서도 분산형 버전관리 시스템이라고 보면 됩니다.

프로그램을 개발하는데 A버전에서 B버전으로 올리다가 문제가 발생하여 다시 A버전으로 돌아가고 싶은데 버전관리가 안되어있다면 다시 A버전에 맞춰서 코드를 짜야하는 시간과 노력이 드는 것을 git을 통해 A버전으로 변경하면 다시 코드가 이전으로 돌아가게 되는 겁니다. 이렇게 한다면 프로그램 관리에 유용하게 되겠죠?

 

git의 장점은 무엇이 있을까요?

소스 코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능합니다. 개발한 코드 부분이 겹치치만 않는다면 병합을 통해 하나로 합칠수있죠

프로그램만 설치하면 인터넷이 안되는 곳에서도 팀이 아닌 개인 프로젝트로도 버전관리가 되어 체계적인 개발이 가능해집니다.

 

git과 같이 사용하는 툴이 무엇이 있을까요?

크게 사용하는 것이 github, soucetree가 존재합니다.

github는 git을 관리하는 큰 서버라고 생각하면 되는데 좀더 풀어서 이야기하면 버전관리를 하는 저장소라고 생각하면 됩니다. 이 github를 통해서 팀원들에게 파일을 공유하고 작업된 결과물을 병합하는 등의 작업을 진행할 수 있습니다.

soucetree는 git의 버전관리는 좀더 편하게 보고 컨트롤 할수있게 하는 프로그램입니다. 이를 이용하면 좀더 편하게 이해하고 접근할수있죠

 

이제 git에서 자주 사용하는 명령어를 작성해 보겠습니다.

특히 회사에서 개발하고 개인 프로젝트 관리 등을 하면서 자주 사용하는 명령어만 쓰게 되니 모든 명령어를 알수는 없지만 그래도 자주 사용하는 명령어는 알고있는것이 중요할듯해요

 

git help : 기본적으로 명령어가 모를때 사용하면 명령어들이 나오고 알려줍니다.

git init : 깃 저장소를 초기화 한다. 저장소의 처음을 만들기위해서는 제일 먼저 입력해야한다.

git status : 저장소 상태를 체크한다. 현재 저장소 안에 변경상항이 있는지 브랜치 작업이 어떠한지 확인할수있다.

git add : 저장소에 추가할 파일을 선택한다고 보면 된다.

git commit : 프로젝트가 마무리하고 git의 태그를 달아서 보내는 것이라고 보면 된다. 현재 어디까지 변경했는지 알수있게 설명이 작성이 되어있다고 생각하면 된다.

git clone : 저장소의 있는 파일을 복제한다. github에서 다른 사용자의 코드를 이용할때 자주 사용한다.

git push : 커밋한것을 github에서 온라인으로 보내는 역할을한다.

git pull : 로컬 환경에서 작업할때, 저장소의 변경된 내용을 로컬 저장소에 적용하는 작업이다.

git log: 커밋 내역을 볼때 사용하는 명령어이다.

git branch :여러 협업자와 작업하고 자신만의 변경을 원한다면 이 명령어로 새로운 브랜치를 만들고, 독립적인 공간을 만든다. 새 브랜치를 “hello”로 지정하고 싶다면 "git branch hello"라고 쓸 수 있다.

git checkout : 독립된 작업 공간인 브랜치를 자유롭게 이동할 수 있다. 만약 master 브랜치를 들여다 보고 싶으면, git checkout master를 사용할 수 있다.

git merge : 브랜치에서 작업을 끝내고, 모든 협업자가 볼 수 있는 master 브랜치로 병합할 수 있다. "git merge hello"라고 입력한다면 hello브랜치에서 만든 모든 변경사항을 master로 추가한다.

 

이것 말고도 사용하는 명령어는 몇개 더 있지만 이정도만 알고있어서 어디서 git좀 사용한다고 이야기는 할 수 있을 것이다.

 

참고 자료:

https://velog.io/@shin6403/Git-이란#3-git-과-github-의-관계

 

git 이란?

1. Git 이란 무엇인가? Git이란 분산 버전 관리 시스템(Version Control System) 의 한 종류이고, 빠른 수행 속도에 중점을 두고 있다. 여기서 버전 관리 시스템의 버전 관리는 말 그대로 여러 파일을 하나

velog.io