깃(Git)은 분산 버전 관리 시스템으로, 다양한 프로젝트에서 소스코드와 문서를 관리하고 협업을 할 때 효율적으로 사용됩니다. 깃을 활용하여 프로젝트를 관리하는 방법에 대해서 알아보겠습니다.
1. Repository(저장소) 생성
프로젝트를 관리하기 위해서는 먼저 깃 저장소를 생성해야 합니다. 깃 저장소는 로컬 저장소와 원격 저장소로 나뉘며, 로컬 저장소는 개발자의 개발 환경에서 사용되는 저장소이며, 원격 저장소는 다른 개발자와 협업할 때 사용되는 저장소입니다.$ git init # 로컬 저장소 생성 $ git remote add origin [원격 저장소 URL] # 원격 저장소와 로컬 저장소 연결
2. Branch(브랜치) 관리
깃은 브랜치 기능을 제공하여, 독립적인 작업 라인에서 작업을 할 수 있습니다. 새로운 기능 추가나 버그 수정 등을 위해 독립적인 브랜치를 생성하여 작업하면, 다른 작업 라인에서의 영향을 최소화할 수 있습니다. 이에 대해서 더 궁금하신 분은 4. 깃(Git) Branch에 대한 이해와 활용에서 좀 더 자세한 내용을 확인해 보실 수 있습니다.$ git branch [브랜치 이름] # 브랜치 생성 $ git checkout [브랜치 이름] # 브랜치로 이동
3. Commit(커밋) 관리
변경 내역을 저장소에 기록하는 작업을 커밋이라고 합니다. 각각의 커밋은 고유한 해시값을 가지며, 변경 내역의 이력을 추적할 수 있습니다.$ git add [변경된 파일] # 파일 추가 $ git commit -m "[커밋 메시지]" # 커밋 생성
4. 프로젝트 이력 추적 및 관리
깃을 활용하면 프로젝트의 변경 이력을 추적하고 관리할 수 있습니다. 이전 버전으로 돌아가는 등 다양한 작업이 가능합니다.$ git log # 커밋 이력 확인 $ git diff [커밋 해시] [커밋 해시] # 커밋 간 차이점 확인 $ git reset --hard [커밋 해시] # 특정 커밋으로 이동
Git은 강력한 분산 버전 관리 시스템으로, 소스 코드의 변경 이력을 관리하고 협업을 효율적으로 지원합니다. 하지만 다양한 명령어로 인해 혼란스러울 수 있습니다. 이 글에서는 자주 사용되는 주요 Git 명령어들을 설명과 함께 정리하였습니다.
git init
.git
디렉토리가 생성됩니다.git init
이 명령을 실행하면 현재 디렉토리에서 Git이 변경 사항을 추적하기 시작합니다.
git clone <repository_url>
git clone https://github.com/user/repository.git
URL에 해당하는 저장소가 로컬 디렉토리에 복제됩니다.
git status
git status
수정된 파일, 추가되지 않은 파일, 커밋 대기 파일 등이 표시됩니다.
git add <file>
git add main.py
main.py
의 변경 사항이 스테이징 영역에 추가됩니다.
git add .
git add .
변경된 모든 파일이 스테이징 영역에 추가됩니다.
git commit -m "메시지"
git commit -m "초기 커밋"
이 명령은 스테이징된 변경 사항을 "초기 커밋" 메시지와 함께 기록합니다.
git branch
git branch
현재 브랜치가 별표(*)로 표시됩니다.
git branch <branch_name>
git branch feature/login
feature/login
이라는 새 브랜치가 생성됩니다.
git checkout <branch_name>
git checkout feature/login
feature/login
브랜치로 작업을 전환합니다.
git checkout -b <branch_name>
git checkout -b feature/register
feature/register
라는 새 브랜치가 생성되고 작업 브랜치로 전환됩니다.
git merge <branch_name>
git merge feature/login
feature/login
브랜치를 현재 브랜치에 병합합니다.
git remote add origin <repository_url>
git remote add origin https://github.com/user/repository.git
원격 저장소
origin
이 추가됩니다.
git push origin <branch_name>
git push origin main
로컬
main
브랜치가 원격 저장소에 업로드됩니다.
git pull origin <branch_name>
git pull origin main
원격
main
브랜치의 변경 사항이 로컬로 병합됩니다.
git log
git log
커밋 해시, 작성자, 날짜, 메시지가 표시됩니다.
git log --oneline
git log --oneline
각 커밋이 한 줄로 요약됩니다.
git log --graph
git log --graph
브랜치 구조를 시각적으로 확인할 수 있습니다.
😵 어? git log 실행했는데 나갈 수가 없어요!!
git log
명령어를 실행하면 터미널에 여러 커밋 로그가 표시되고, 더 많은 로그를 보기 위해 스크롤할 수 있는 상태가 됩니다.
- 이 상태는
less
라는 페이지 네이터(paginator) 도구를 사용하는 모드입니다.
q
키 누르기git log
출력 화면에서 q
키를 누르면 로그 보기를 종료하고 일반 터미널로 돌아갑니다.화면 내 이동
k
또는 화살표 위(↑
) 키 j
또는 화살표 아래(↓
) 키 b
키 Space
) 키검색 기능 사용
/
를 입력한 후 검색어를 입력하면 해당 키워드가 포함된 내용을 검색할 수 있습니다./fix
를 입력하면 메시지에 fix
가 포함된 커밋을 찾습니다.git reset <file>
: 스테이징된 파일을 언스테이징합니다.
git reset main.py
git reset --hard HEAD
: 마지막 커밋 상태로 작업 디렉토리를 되돌립니다. (주의: 변경 사항 삭제)
git reset --hard HEAD
git revert <commit_hash>
: 특정 커밋을 취소하는 새 커밋을 생성합니다.
git revert abc123
git stash
: 현재 작업 내용을 임시 저장합니다.
git stash
git stash pop
: 가장 최근의 임시 저장을 적용하고 스택에서 제거합니다.
git stash pop
git rebase <branch_name>
: 현재 브랜치를 다른 브랜치 위로 재배치합니다.git rebase main
이 글에서 다룬 명령어들은 Git의 핵심 기능을 이해하고 활용하기 위한 기본 지침입니다. 추가적인 옵션이나 고급 사용법은 git help <command>
를 통해 확인할 수 있습니다. Git을 효과적으로 활용하기 위해 지속적으로 실습하고 다양한 시나리오를 경험해 보세요.