버전 관리

일반적으로 버전 관리(Version Control)란 소프트웨어의 소스 코드에 발생한 변화들을 기록하고 특정 시점의 상태를 불러오는 것을 말한다. 개발자들 사이의 협업을 통해서 한 소프트웨어의 규모가 커졌고 이런 버전 관리를 할 수 있는 버전 관리 도구의 중요성은 더욱 대두되었다. 이 중 가장 유명한 도구가 Linus Torvalds 가 개발한 ’깃(Git)’ 이다. 이 깃을 대중적으로 사용하는 환경인 윈도우 환경에서 사용할 수 있도록 설정하는 과정을 정리하고자 한다.

깃 설치

우선은 깃을 설치해야한다. 설치에는 대표적으로 2가지 정도의 방법이 있는데 하나는 설치 파일을 받아서 설치하는 방법이고 다른 하나는 패키지 관리자 (Package Manager) 프로그램을 사용하는 것이다. 깃 다운로드 페이지에서 설치 파일을 다운받아서 설치하는 방법은 아주 직관적이므로 정리할 필요는 없다고 생각되기 때문에, 윈도우에서 패키지 관리자를 사용하는 방법을 정리해보자.

Winget

Winget 은 마이크로소프트에서 제공하는 윈도우용 패키지 관리자 프로그램이다. 우선은 winget 이 설치되어있는지 확인해보자.

만약 winget 이 없다면, Microsoft Store 에서 ‘앱 설치 관리자’ 를 설치하면 된다. Chocolatey 가 익숙한 사용자라면 해당 프로그램을 사용해도 무방하다.

winget install git

이름으로 지칭하는 경우 중복되는 패키지가 흔치 않게 있기 때문에 ‘winget search’ 를 통해서 검색하고 ‘장치 ID’ 를 통해서 설치하는 편이 쉽다.

winget install git.git

위 명령어를 입력하면 자동으로 설치 파일을 다운로드하고 실행된다. 환경을 자주 바꾸는 개발자, 혹은 새로운 시스템에서 개발 환경을 새로 구축해야 하는 개발자의 경우 윈도우에서도 패키지 관리자 형태의 소프트웨어를 사용하면 조금 더 쉽게 환경을 구축할 수 있다.

분산 버전 관리 로컬에서 맛보기

깃은 분산 버전 관리 형태를 채택하고 있다. 완전히 깃을 처음 접한다면 조금 생소할 수 있다. 기존의 버전 관리는 중앙에 특정 버전들을 기억하고 있는 저장소가 있고 각 개발자들이 저장소에서 코드를 받아오거나 저장하도록 되어있다. 분산 버전 관리는 이 저장소라는 개념이 로컬에서도 존재한다. 소스 코드를 수정하고 이 차이를 로컬 저장소에 반영시킨 다음(깃에서 commit), 반영된 정보를 원격 저장소에다 보내는(깃에서 push) 식으로 이루어진다. 이런 개념은 서버없이 시스템 내부에서 간단하게 테스트 해볼 수 있다.

1. 깃 시작하기

git init

로컬에서 최초로 깃 저장소를 만드는 명령어는 ‘git init’ 입니다. 해당 명령어를 수행한 폴더를 확인해보면 숨김 처리된 ‘.git’ 폴더를 확인할 수 있습니다. 파이썬 예제 프로그램을 작성하여 해당 폴더에 생성하고 다음 명령어를 입력합니다.

2. 로컬에 변경 사항 반영하기

git status

반영되어야 하는 변경 사항이 있음을 알 수 있습니다. 이를 로컬 저장소에 반영 해보겠습니다.

git add . git commit -m ‘initial commit’

add 의 경우 문제 없이 수행되지만, commit 이 되지 않음을 알 수 있습니다. 최초로 git 을 실행한 경우 사용자 정보가 기입되지 않은 상태기 때문에 commit 이 진행되지 않는 상황입니다.

git config —global user.email ”test@email.com” git config —global user.name “name”

위 명령어를 입력하여 개인 정보를 입력합니다. "" 안의 내용은 원하시는대로 입력하면 됩니다.

다시 commit 을 수행하면 위와 같은 내용을 확인할 수 있습니다.

gitk

깃 GUI 프로그램을 활용하여 브랜치의 이력을 조회할 수도 있습니다.

3. 원격 저장소에 반영하기

git remote

위 명령어를 입력하면 아무것도 나오지 않는 것을 확인할 수 있습니다. 간이 원격 저장소로 활용할 폴더를 만들어주고 아래 명령어를 실행합니다.

git init —bare

위와 같은 결과가 나오는 것을 확인할 수 있습니다. ‘git init —bare’ 는 작업 공간이 없이 깃 저장소를 시작하는 방법입니다. 원격 저장소는 작업 공간이 없는 Bare Repo 로 생성되어야 합니다.

다음은 원격 저장소를 등록해보겠습니다. 파이썬 소스 코드를 추가했던 테스트용 로컬 깃 저장소 폴더로 이동합니다.

git remote add origin C:/Users/palbi/source/repos/test.git git remote -v

위 명령어들을 입력하여 원격 저장소에 폴더를 등록하고 정상적으로 등록이 되었는지 확인합니다. 주의할 점은 깃은 bash 쉘을 사용한다는 점입니다. 역슬래시( \ )를 폴더 구분자로 인식하지 않기 때문에 역슬래시를 일반 슬래시( / )로 변경하거나 역슬래시를 두번씩 입력해주는 작업이 필요합니다.

git push origin master

깃허브의 경우 중심 브랜치의 이름이 master 가 아닌 main 으로 변경되었지만 git 의 경우 로컬에서 사용하면 master 일 수 있습니다. 이를 참고하여 원하는 브랜치 정보를 원격 저장소인 origin 에 push 합니다.

마무리

위 과정들로 로컬에서 간단하게 깃을 사용해볼 수 있었습니다. 어떤 소프트웨어를 개발하더라도 깃과 같은 버전 관리 도구 없이는 원활하게 개발이 진행되기 어렵습니다. 골자가 되는 개발 지식도 중요하지만 도구의 사용법도 중요하게 생각되고 있습니다. 그동안 활용해왔던 다양한 기능들과 그 사용법들을 간간히 업데이트하도록 하겠습니다.