Git Workflow는 Git을 이용해 소스 코드를 관리하고 팀 협업을 효율적으로 하기 위한 일련의 전략과 절차입니다.
Git의 브랜치와 커밋을 활용해 여러 가지 작업 방식을 정의하는 것이 주요 목표입니다.
대표적인 Git Workflow 방식으로는 다음이 있습니다:
main
브랜치 하나를 두고, 기능 개발을 위해 브랜치를 나눈 후 머지하는 방식입니다. 빠른 배포가 중요한 경우에 유용합니다.Git에서 Reset과 Revert는 각각 이전 커밋으로 돌아가거나 특정 변경 사항을 되돌리는 데 사용되지만, 기능과 사용 목적이 다릅니다.
두 개념 모두 작업을 롤백하는 기능을 제공하지만, 프로젝트 이력과 커밋 로그에 대한 영향이 다르므로 주의가 필요합니다.
git reset
은 특정 커밋 지점으로 이동하여 현재 브랜치의 커밋 이력을 수정하는 명령어입니다. 커밋 이력을 지우거나 되돌릴 수 있으며, 로컬에서만 영향을 줍니다. git reset
에는 크게 세 가지 옵션이 있습니다:
soft: 지정한 커밋으로 이동하면서 커밋 이력만 변경합니다. 워킹 디렉토리와 인덱스(stage)에 있는 파일들은 그대로 유지됩니다.
예) git reset --soft <commit-id>
mixed (기본 옵션): 지정한 커밋으로 이동하고, 커밋과 스테이징 상태를 해제합니다. 워킹 디렉토리는 유지되며, 변경 사항은 워킹 디렉토리에 남아있습니다.
예) git reset --mixed <commit-id>
hard: 지정한 커밋으로 이동하며, 커밋, 스테이징 상태, 워킹 디렉토리의 변경 사항을 모두 제거합니다. 삭제된 파일들은 복구가 어렵기 때문에 신중하게 사용해야 합니다.
예) git reset --hard <commit-id>
언제 사용해야 하나요?
git reset
은 주로 실수로 커밋한 변경 사항을 수정하고 싶을 때, 또는 아직 공유되지 않은 로컬 커밋을 되돌리고 싶을 때 유용합니다. 하지만 공유된 원격 브랜치에서 reset
을 사용하면 문제가 발생할 수 있으므로, 로컬 작업에서 사용하는 것이 좋습니다.