Git은 프로젝트의 변경 이력을 효율적으로 관리하는 도구로, 커밋 히스토리를 통해 코드의 모든 변화를 추적할 수 있습니다. Git의 히스토리 관리 기능을 사용하면, 이전 커밋으로 되돌리거나, 불필요한 변경 사항을 제거하며, 협업 중 발생할 수 있는 충돌을 예방하고 코드의 일관성을 유지할 수 있습니다.


Commands

git reset

커밋을 취소하거나 되돌릴 때 사용합니다.

git reset --soft HEAD~1  # 최근 커밋 취소 (변경 사항 유지)
git reset --hard HEAD~1  # 최근 커밋 취소 (변경 사항 삭제)

git rebase

브랜치를 다른 브랜치 위로 이동시켜 변경 내역을 정리할 수 있습니다.

git rebase <브랜치명>

Interactive

git rebase -i 명령을 사용하면 여러 개의 커밋을 수정, 삭제, 병합할 수 있습니다.

git rebase -i HEAD~3

이 명령어를 실행하면 편집 모드로 전환되며, 각 커밋을 pick, squash, edit 등의 옵션으로 수정할 수 있습니다.

Conflict

Rebase 중 충돌이 발생하면, 수동으로 충돌을 해결한 후 다음 명령어를 실행해야 합니다.

git rebase --continue

만약 rebase를 취소하려면 다음 명령어를 사용합니다.

git rebase --abort

git revert

기존 커밋 기록을 유지하면서도 변경 사항을 취소할 수 있어 협업 환경에서 안전하게 사용할 수 있습니다.

git revert <커밋 해시>

Conflict

Revert 중 충돌이 발생하면, 충돌을 해결한 후 다음 명령어를 실행합니다.

git revert --continue

Revert를 취소하려면 다음 명령어를 사용합니다.

git revert --abort

git cherry-pick

특정 커밋만 선택하여 현재 브랜치에 적용할 수 있습니다.

git cherry-pick <커밋 해시>

Conflict

충돌이 발생하면, 수동으로 충돌을 해결한 후 다음 명령어를 실행합니다.

git cherry-pick --continue

취소하려면 다음 명령어를 사용합니다.

git cherry-pick --abort

References