예전에는 형상관리 툴의 종류가 많았습니다.
대표적으로 SVN, CVS, TFS, GIT
등이 있습니다.
그래서 개발자들은 취향에 맞는 툴을 골라서 사용했습니다. 하지만 최근들어 모든 형상관리는 Git으로 통일되고 있습니다.
우리는 이제 좋든 싫든 프로젝트 소스코드 관리를 위해 Git을 사용해야 합니다. 사실 사용해 보면 Git이 가장 편하고 확장성도 좋아서, 굳이 사용하지 않을 이유도 없습니다.
윈도우에서 Git을 사용하는 방법은 몇가지가 있습니다.
1. IDE에서 제공하는 도구 (IntelliJ, Visual Studio) 2. Git 전용 관리 프로그램 (TortoiseGit, Git Gui) 3. 명령어 사용 (Git Bash, Git CMD)
가장 추천하는 방법은 직접 명령어를 사용하는 방법입니다. 기본적인 명령어를 이해하고 사용하는게 무엇보다 중요하기 때문입니다.
명령어가 어느정도 익숙해지면, 그때 다른 프로그램을 사용해도 좋습니다. 그런데 직관적인 명령어에 익숙해지면, 굳이 다른 프로그램을 사용할 필요가 없어집니다.
윈도우에서는 Git Bash
활용을 추천합니다.
Git Bash는 윈도우에서 리눅스 명령어를 사용할수 있는 프로그램입니다.
참고로 Git의 실행 구조입니다. 복잡해 보이지만 기본적인 명령어를 이해하면, 생각보다 어렵지 않습니다.
그럼 Git Bash를 활용해서 기본적인 명령어를 알아보겠습니다.
로컬에서 원하는 경로에 폴더를 만들고, 해당 경로로 이동합니다. 그리고 새로운 저장소를 만듭니다.
git init
생성한 저장소를 사용하는 사용자와 이메일을 설정합니다. 계정 및 원격 저장소는 GitHub를 기준으로 하겠습니다.
git config user.name "GitHub 계정" git config user.email "GitHub 이메일" git config user.name "devfoxstar" git config user.email "devfoxstar@gmail.com"
참고로 계정을 전역으로 설정하려면 --global
옵션을 추가하면 됩니다.
GitHub에 프로젝트가 있으면, 로컬 저장소로 복제만 하면 됩니다.
git clone GitHub 경로 git clone https://github.com/devfoxstar/devfoxstar.github.io.git
GitHub에 프로젝트가 없으면, 로컬 저장소를 연결해야 합니다. 먼저 원격 저장소를 지정하고, Branch를 생성합니다.
git remote add origin GitHub 경로 git branch 브랜치명 git remote add origin https://github.com/devfoxstar/devfoxstar.github.io git branch main
프로젝트에서 사용 할 Branch를 지정합니다.
git checkout 브랜치명 git checkout main
로컬 저장소와 원격 저장소의 기본적인 설정이 끝났습니다. 이제 설정이 제대로 됐는지 확인해 봅니다.
git config --list
GitHub에 devfoxstar/devfoxstar.github.io
저장소를 기준으로 설정된 결과값입니다.
그리고 설정된 Branch 리스트도 확인해 봅니다.
git branch
Gatsby를 활용한 GitHub Pages 프로젝트에는 2개의 Branch가 생성되어 있습니다. main은 소스코드용, deploy는 디플로이용 Branch입니다.
로컬에서 작업한 소스코드를 GitHub에 배포하는 방법입니다. 하나의 파일만 배포하는 경우와 변경 파일 전체를 배포하는 경우가 있습니다.
git add 파일명 git add .
참고로 git add *
명령어는 .gitignore
에 포함된 파일도 스테이지 상태로 만듭니다.
그래서 git add .
명령어를 쓰는게 좋습니다.
다음으로 Commit을 하고 Push를 하면 배포가 완료됩니다.
원격 저장소가 지정되어 있으면 git push
명령어로 간단하게 처리할 수도 있습니다.
git commit -m "커밋 내용" git push origin main
작업을 하면서 현재 로컬 저장소의 상태를 알고 싶을 때는 git status
명령어를 사용합니다.
그럼 로컬 저장소의 변경 상태가 상세하게 나옵니다.
git status
만약 Commit된 파일을 취소하고 싶으면 git reset
명령어를 사용하면 됩니다.
그럼 git add
이전 상태로 돌아갑니다.
git reset
다른 사람이 작업한 파일이 GitHub에 배포되면 로컬 저장소를 업데이트 해야 합니다.
git pull
명령어를 실행하면, 간단하게 fetch와 merge가 완료됩니다.
git pull
git diff
로 변경 파일 정보를 알수있고, git log
로 Commit 로그를 볼수 있습니다.
git diff git log
지금까지 Git에서 기본 중의 기본 명령어를 알아봤습니다.
이외에도 Git의 기능은 굉장히 많습니다. 추가 명령어와 옵션까지 파악한다면 훨씬 편하고 유연한 형상관리가 가능합니다.
참고로 Git의 기본 개념을 이해하기 좋은 페이지 하나를 남깁니다.