커밋이란 무엇인가?
커밋은 Git에서 프로젝트의 특정 시점 상태를 저장하는 일이다. 마치 사진 촬영처럼, 특정 순간의 프로젝트 모습을 캡처하여 버전 관리 시스템에 기록하는 것이라고 생각하면 된다. 또한, 커밋은 기본적으로 프로젝트의 한 버전을 나타낸다. 프로젝트의 새로운 버전을 저장할 때마다 커밋을 만들 수 있다. 커밋은 중요한 작업을 백업하고 저장하지 않은 작업을 잃어버리는 실망을 방지할 수 있기 때문에 중요하다. 커밋을 만들면 해당 작업이 저장되며, 이 커밋을 통해 프로젝트가 특정 시점에 어떻게 보였는지 확인할 수 있다.
커밋을 언제 만들어야 하는지에 대한 엄격한 규칙은 없다. 이는 혼자 프로젝트를 진행하는지, 다른 사람들과 함께 진행하는지, 그리고 작업하고 있는 프로젝트의 종류(예: 컴파일해야 하는 코드를 작성하는지, 기능에 대한 문서 작성하는지) 등 많은 요인에 따라 달라질 수 있다.
팀에서 작업하는 경우에는 팀이 사용하는 워크플로와 팀에서 합의한 규칙에 따라 달라질 수도 있다.
커밋 만들기
커밋 만들기는 아래 두 단계로 이루어진다.
1. 스테이징 영역에 추가 : 다음 커밋에 포함하고 싶은 모든 파일을 스테이징 영역에 추가한다.
2. 커밋 메시지 작성 : 커밋 메시지를 작성하여 커밋을 만든다.
이 과정에서 Git의 네 가지 중요한 Git 영역 (로컬 저장소, 작업 디렉토리, 스테이징 영역, 커밋 히스토리)과 상호 작용하게 된다.
커밋 과정에서 유용한 명령어 중 하나는 git status 명령어입니다. 이 명령어는 작업 디렉토리와 스테이징 영역의 상태를 알려준다. 특히 많은 파일로 구성된 프로젝트에서 작업 디렉토리의 파일 상태 (예: 수정된 파일)와 스테이징 영역에 추가한 파일을 추적하기 어려울 때 유용하다.
git status
스테이징 영역에 파일 추가하기
파일을 스테이징 영역에 추가하려면 git add 명령어를 사용합니다.
- 개별 파일 추가 만 수정한 개별 파일만 스테이징 영역에 추가하고 싶다면, 파일 이름을 git add 명령어의 인수로 넘겨주면 됩니다.
- 예시: git add chapter3.txt intro.txt
- 모든 변경 파일 추가 작업 디렉토리에서 모든 수정 또는 변경된 파일을 추가하려면 git add 명령어와 함께 -A 옵션 (모두를 의미하는 "all")을 사용할 수 있습니다. 많은 파일을 수정했고 명령줄에 각 파일 이름을 다 적고 싶지 않은 경우에 유용합니다.
[명령 저장]
- git add 파일명: 스테이징 영역에 한 파일 추가
- git add 파일명1 파일명2 ...: 스테이징 영역에 여러 파일 추가
- git add -A: 작업 디렉토리에서 수정 또는 변경된 모든 파일을 스테이징 영역에 추가
스테이징 영역을 사용하면 다음 커밋에 포함할 업데이트된 파일(또는 변경 사항)을 선택할 수 있다. 일반적인 규칙은 관련 변경 사항을 함께 그룹화하는 것이다. 이를 통해 커밋을 보다 체계적으로 유지할 수 있다.
다음 섹션에서 볼 수 있듯이, 모든 커밋에는 관련 커밋 메시지도 함께 있다. 이 메시지는 특정 커밋에서 업데이트된 내용에 대한 설명을 제공하는 데 사용할 수 있다.
커밋 과정의 이 첫 번째 단계를 통해 커밋에 포함할 내용을 매우 구체적으로 선택할 수 있다. 즉, 프로젝트에서 많은 파일을 수정할 수는 있지만, 모든 파일을 한 번의 커밋에 저장할 필요는 없다.
커밋 하기
커밋이라는 단어는 동사와 명사 모두로 쓰일 수 있다는 점을 유의해야 한다. Git에서 동사로서의 "커밋(commit)"은 무언가를 저장하는 것을 의미하며, 명사로서의 "커밋(commit)"은 프로젝트의 특정 버전을 의미한다. 따라서 커밋을 만든다는 것은 프로젝트의 한 버전을 저장하는 것을 의미한다.
커밋을 만들기 위해서는 git commit 명령어를 사용하고, 함께 "-m" 옵션 (메시지를 의미하는 "message")을 써서 따옴표 안에 메시지를 입력한다. 이 메시지는 보통 해당 프로젝트 버전에서 변경한 내용에 대한 간략한 설명이어야 한다.
기본적인 사용법
git commit -m "커밋 메시지"
- -m 옵션: 커밋 메시지를 입력한다. 커밋 메시지는 이후에 어떤 변경이 이루어졌는지 쉽게 파악할 수 있도록 간결하고 명확하게 작성하는 것이 좋다.
예시
git commit -m "버그 수정: 로그인 오류 해결"
위 명령어는 로그인 오류를 수정한 내용을 "버그 수정: 로그인 오류 해결"이라는 메시지와 함께 커밋한다.
주요 옵션
- -a 옵션 : git add 명령 없이 바로 모든 변경 사항을 스테이징 영역에 추가하고 커밋한다.
- --amend 옵션 : 이전 커밋을 수정한다. 마지막 커밋에 추가적인 변경 사항을 포함하거나 커밋 메시지를 수정할 때 사용한다.
- --no-verify 옵션 : 커밋 후 검증 과정을 생략한다. 일반적으로 사용하지 않는 것이 좋다.
- -m 옵션 : 커밋 메시지를 여러 줄로 입력할 수 있다.
커밋 히스토리 확인하기
커밋 히스토리에 있는 커밋 목록을 확인하려면 git log 명령어를 사용한다.
git log 명령어는 로컬 저장소의 커밋을 역순으로 나열해 보여준다. 각 커밋에 대한 다음과 같은 네 가지 정보를 표시한다.
- 커밋 해시 : 커밋을 유일하게 식별하는 코드이다.
- 저자 이름과 이메일 주소 : 커밋을 만든 사람의 정보
- 커밋 날짜 및 시간 : 커밋이 만들어진 날짜와 시간
- 커밋 메시지 : 커밋과 관련된 간략한 설명 메시지
이 정보를 통해 프로젝트가 어떻게 변경되었는지 추적할 수 있다.
git log
참조
https://www.oreilly.com/library/view/learning-git/9781098133900/
'Git' 카테고리의 다른 글
Git - 호스팅 서비스와 원격 리포지토리 (0) | 2024.07.24 |
---|---|
Git - 병합(Merging) (0) | 2024.07.24 |
Git - 브랜치(Branches) (0) | 2024.07.23 |
Git - 저장소(Repositories) (0) | 2024.07.23 |
Git이란 무엇인가? (0) | 2024.07.23 |