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