지금까지 git은 주로 GUI 클라이언트인 소스트리(SourceTree)를 통해 사용했다.
대부분 커밋, 머지, 커밋, 머지의 반복이었다. 그것만으로도 git을 사용하는데 큰 불편함을 느끼지 못했다.
그러다가 실수로 머지를 잘못하거나 함께 일하는 작업자가 추가 해 놓은 코드를 삭제하게 되면 문득 극도의 불안감이 엄습해왔다. 해당 작업 내용을 수정하거나 삭제된 내용을 다시 되돌리면 된다는 것을 머리로는 알지만 실제로 직접 실행해 보는 상황이 그리 많은 편이 아니어서 할 때 마다 혹시 실수는 하지 않을까 하는 마음에 방법을 다시 한번 찾아보는 경우가 많았다.
그리고 지금까지는 GUI 클라이언트(소스트리)의 일부 기능만 사용해 왔는데, git을 제대로 이해하면 CLI 환경에서도 능숙하게 사용할 수 있을 거라는 생각이 들어 공부하면서 알게된 내용을 정리해 본다.
필요할 때 찾아보더라도 자주 사용하지 않으면 머리속에서 사라지고 만다. 이런 게으르고 똑똑하지 못한 나를 위해 이번 기회에 git에 대한 두려움을 떨쳐내기 위해 한번 정리해본다.
git, 시작하기
git은 버전 관리 시스템으로 주로 개발 프로젝트의 소스 코드 관리를 위해 사용한다.
소스 코드를 생성, 수정하고 개선한느 모든 과정을 git으로 관리 할 수 있다.
혼자 작업하는 코드 뿐 아니라 여러 사람과 협업하는 코드도 git을 이용하면 효율적으로 관리할 수 있다.
git으로 할 수 있는 것
간단하게 적어보면 이렇다.
- 파일명은 유지하면서 변견 내용과 시점 저장
- 각 변경 시점의 작업 내용 확인
- 특정 내용과 시점으로 되돌리기
이런 작업을 위해 git을 사용힌다.
git, 작업 영역
git은 현재 본인이 작업하고 있는 로컬 컴퓨터에서 코드 생성과 수정 내용을 기록하고 관리할 수 있게 한다. 로컬 컴퓨터에 git을 설치하여 버전 관리를 시작한다고 하여 이를 바로 원격의 다른 개발자가 확인하거나 수정할 수 있는 것은 아니다.
git의 작업 영역은 크게 로컬(local) 저장소와 원격(remote) 저장소로 구분된다.
로컬 저장소에서 작업한 내용을 원격(리모트) 저장소에 반영하면 다른 작업자가 확인 할 수 있다. 여기서 원격 저장소는 주로 깃헙(github), 빗버킷(bitbucket), 혹은 깃랩(gitlab)과 같은 서비스를 이용한다.
로컬 저장소 (Local Repository)
작업자의 컴퓨터에 있는 저장소이다.
깃이 설치되어 있다면 인터넷 연결이 되지 않은 상태에서도 코드의 버전 관리가 가능하다. 로컬 저장소에서 파일의 생성, 수정, 커밋, 병합 등의 작업을 하고 인터넷이 연결될 때 원격저장소에 반영(push)할 수 있다.
원격 저장소 (Remote Repository)
인터넷으로 연결할 수 있는 저장소이다.
많은 작업자들이 로컬 저장소에서 작업한 코드를 원격 저장소에 반영할 수 있다. 원격 저장소에 저장된 코드는 언제든지 내려받아서 작업을 이어갈 수 있다.
동일한 원격 저장소에서 다른 작업자가 작성한 코드를 확인하고 때에 따라 충돌이 난 파일을 해결하고 병합(merge)하고 리뷰하는 과정도 이 원격 저장소에서 이루어진다.
원격 저장소로 사용되는 대표적인 서비스가 깃헙(github)이다.
지금까지 git과 작업영역(저장소)에 대해서 알아 보았다.
다음은 git을 설치하고 초기 설정하는 방법을 정리해 보겠다.
2022.09.24 - [Dev.] - [git] 설치 및 초기 설정
[git] 설치 및 초기 설정
설치 git을 사용하기 위해서 먼저 로컬 컴퓨터에 git을 설치한다. Homebrew를 이용한 설치 homebrew는 MacOS에서 패키지 관리를 위해 사용한다. homebrew를 처음 설치한다면 homebrew 사이트의 설치하기 명령
littleneedle.tistory.com
2022.09.27 - [Dev.] - [git] 작업 영역과 상태
[git] 작업 영역과 상태
git 작업 영역과 상태 구분 git 설치가 완료되면, 초기화를 진행한 후, 브랜치를 생성하고, 작성한 코드를 git에 추가하고, 추가한 코드를 로컬 저장소에 반영하는 과정을 거치며 진행한다. 앞의 로
littleneedle.tistory.com
2022.10.05 - [Dev.] - [git] 커밋하기
[git] 커밋하기
개발 과정에서 지속적으로 수정되는 코드의 변경 사항을 모두 기억하고 기록하는 것은 불가능하기 때문에, 코드의 변경 이력과 시점의 변화를 기록해 두는 것이 커밋이다. 이 커밋이 코드를 과
littleneedle.tistory.com
'IT & Dev.' 카테고리의 다른 글
[git] 작업 영역과 상태 (0) | 2022.09.27 |
---|---|
맥 개발 환경 세팅 ( iTerm2 + Oh my zsh + powerlevel10k ) (0) | 2022.09.26 |
[git] 설치 및 초기 설정 (0) | 2022.09.24 |
NVM으로 Node 버전 관리하기 (0) | 2022.09.18 |
VS Code 테마 추천 SynthWave '84 (2) | 2022.08.02 |