상황
: 리포지토리에서 이전 코드를 완전히 지우고 새 코드를 작성할 때, Git이 이를 변경 사항으로 인식하여 붉은색으로 표시되는 문제 발생...
이전에 작성한 코드 다시 보려다가 발견........대참사
우선 깃의 스태시, 푸시, 커밋에 대한 이해가 필요할 것으로 판단.
스태시 vs 커밋 vs 푸시
: 작업 중인 변경 사항을 임시 저장하는 기능입니다. 아직 커밋할 준비가 되지 않았거나, 다른 브랜치로 전환해야 할 때 유용하게 사용할 수 있습니다.
: 변경 사항을 저장소에 영구적으로 기록하는 기능입니다. 커밋을 통해 변경 이력을 관리하고, 특정 시점으로 되돌아갈 수 있습니다.
: 로컬 저장소의 커밋을 원격 저장소에 업로드하는 기능입니다. 푸시를 통해 다른 개발자들과 변경 사항을 공유하고 협업할 수 있습니다.
비유를 통해 설명하면, 스태시는 냉장고, 커밋은 냉동실, 푸시는 택배와 같습니다.
스태시: 잠시 보관해야 할 음식을 냉장고에 넣어두는 것과 같습니다.
커밋: 오랫동안 보관해야 할 음식을 냉동실에 넣어두는 것과 같습니다.
푸시: 냉동실에 보관된 음식을 택배를 통해 다른 사람에게 보내는 것과 같습니다.
스태시, 커밋, 푸시는 각각의 역할이 다르므로, 상황에 맞게 적절히 사용하는 것이 중요
스태시 <-> 커밋?
스태시와 커밋은 다른 기능입니다.
스태시는 작업 중인 변경 사항을 임시 저장하는 기능이고,
커밋은 변경 사항을 영구적으로 저장하는 기능입니다.
스태시는 아직 커밋할 준비가 되지 않은 변경 사항을 임시로 저장하고 싶을 때 유용합니다.
예를 들어, 다른 브랜치로 전환해야 하는데 현재 작업 중인 내용을 커밋하기는 애매할 때, 스태시를 사용하여 변경 내용을 임시 저장해둘 수 있습니다. 나중에 다시 스태시를 적용하여 작업을 이어갈 수 있습니다.
변경 사항은 추가 안 하고 커밋하고 싶을 때는 빈 커밋을 생성하면 됩니다.
빈 커밋은 변경 사항 없이 커밋 메시지만 기록하는 커밋입니다.
Git에서 빈 커밋을 생성하려면 다음 명령어를 사용합니다.
git commit --allow-empty -m "커밋 메시지"
--allow-empty 옵션은 변경 사항이 없더라도 커밋을 생성하도록 허용하는 옵션입니다.
빈 커밋은 특정 시점을 기록하거나, 워크플로우를 관리하는 등의 목적으로 사용할 수 있습니다.
참고로, 빈 커밋은 Git 히스토리에 기록되므로, 남용하면 히스토리가 복잡해질 수 있습니다. 따라서 꼭 필요한 경우에만 사용하는 것이 좋습니다.