728x90

 보통 개발을 처음 배우기 시작하면서 Git 을 배우게 된다.

깃을 처음 배울 때, 가장 자주 보는 그림은 아래와 같은 것일 거다.

실제로 깃을 내가 배우고 나서도, 이력서를 쓸 때 버전 관리를  날짜로 하였다. 

그러다가 깃을 어떠한 경우에 활용하면 효율적인가에 대해서 배울 기회가 생겨서 이렇게 공유하게 되었다.

 

깃을 사용할 때는 크게 5가지의 시나리오가 있다.

 

1. 혼자 작업을 할 때 한 컴퓨터에서 버전 관리.

이력서를 쓸 때, 이력서를 계속 보완하게 될 것이다. 그러다보면 수정한 것보다 전 버전이 마음에 든 경우도 있을 수 있다. 모든 버전을 저장한다고 생각해보자. 이 경우 어떤 이력서가 최신 것인지 구별하기도 어렵고 , 파일도 너무 많아질 것이다.

이를 관리하기 위해서 깃을 사용하면 좋다.

git init 명령어를 통해서 해당 폴더를 깃으로 관리하게 되는 경우, 커밋 내역을 통해서 내가 어떻게 수정했는지 확인도 가능하고, 원하는 버전으로 롤백 또한 가능하다. (굳이 여러 파일로 나누지 않더라도)

 

 

2. 혼자 작업을 하는데, 다른 컴퓨터에서 사용할 경우

 발표 자료를 준비했다고 생각해보자. 보통 우리는 클라우드 혹은 usb에 해당 파일을 저장한다. 하지만 git push 기능을 통해서 git hub에 파일을 저장해 놓은 경우에는 굳이 클라우드 혹은 usb를 사용하지 않더라도 해당 파일을 사용할 수 있다.

이때 사용되는 기능이 저장소에 저장하는 git push 와 저장소를 복제하는 git clone 이다.

 

 

3.   혼자 작업을 하지만, 다른 컴퓨터에서도 작업할 경우

 git push를 통해서 내가 현재 작업한 내용을 원격 저장소에 백업을 해놓았지만, 이 내용이 원격 저장소에서는 같지만 내 컴퓨터와 회사 컴퓨터에서는 다를 수가 있다.

이를 해결할 수 있는 것이 git pull 이다. 원격 저장소에 저장된 내용을 바탕으로 내 컴퓨터에 저장된 내용을 최신화 하는 과정이다.  이 과정에서 실수로  내 컴퓨터를 최신화하지 않고 작업을 한다면, 회사에서 작업한 내용과 내가 작업한 내용이 겹칠 수가 있다. 이를 충돌이라고 하는데, git 을 통해서는 해당 충돌 내용을 비교해서 내가 필요한 내용을 취합 할 수 있다.

충돌의 경우는 결국 추가 작업이기 때문에 git에서는 pull을 먼저해야지만 내 내용을 push할 수 있도록 되어 있고, 가급적이면 작업전에 pull을 먼저 하는게 좋다.

 

 

4. 혼자 작업을 하지만, 공통된 부분 말고 따로 관리하고 싶을 때

이력서를 쓴다고 생각해보자. 모든 회사에 같은 이력서를 제출할 수는 없다. 이때 사용할 수 있는 기능이 git branch이다.

개인 신상과 같이 공통된 내용은 최상단 브랜치에서 관리를 하고,  브랜치 기능을 통해서 각각의 회사별 이력서를 관리할 수 있다.

 

5. 여러 명에서 같은 파일을 통해 작업을 하는 경우

여러 명에서 같은 파일을 통해 작업을 한다고 생각을 해보자. 매번 충돌이 일어날 것이다. 이를 매번 해결하는 과정도 복잡하고, 사람 수가 늘수록 작업에 큰 지장을 줄 것이다. (pull을 했는데, 바로 다음 사람이 push한 경우 또 pull을 해야한다

 

이를 해결할 수 있는 방법이 git branch이다.

각각의 브랜치에서 작업을 하는 경우, 매번 pull을 할 필요 없고 최종적으로 내 작업이 끝날 때만 git merge를 하면 된다.

git merge는 가지처럼 뻣어나간 각각의 branch에서 작업한 내용을 합치는 기능이다.

 

이러한 깃의 활용도가 늘어나면 git branch 전략을 사용하여서, 배포할 웹 혹은 앱의 현재버전, 배포준비 버전, 핫픽스 버전, 개발 버전 등등 나뉘어서 작업할 수 있다.

 

+ Recent posts