개발을 하다 보면, 작업을 진행하면서 여러 개의 커밋을 한 번에 취소해야 하는 상황이 발생할 수 있습니다.
이런 경우, Git을 활용해 여러 커밋을 효과적으로 되돌리거나 수정하는 방법을 이해하는 것이 중요합니다.
이번 포스트에서는 Git에서 여러 커밋을 취소하는 다양한 방법을 살펴보겠습니다.
1. git revert를 사용한 여러 커밋 되돌리기
git revert는 특정 커밋을 되돌리는 방식으로, 변경 사항을 제거하는 새로운 커밋을 생성합니다.
여러 커밋을 한 번에 되돌리고 싶을 때도 사용할 수 있습니다.
사용 방법
git revert [start-commit]..[end-commit]
예를 들어, 특정 범위의 커밋 facd에서 eea5까지를 되돌리고 싶다면 다음과 같이 입력합니다.
git revert facd..eea5
이 명령어는 해당 커밋 범위 내의 모든 변경 사항을 되돌리는 새로운 커밋들을 생성합니다.
이 방식은 히스토리를 보존하며 안전하게 변경 사항을 되돌리는 방법입니다.
장점
- 히스토리 보존: 커밋 히스토리를 유지하면서도 원하는 변경 사항만 되돌릴 수 있습니다.
- 협업에 적합: 협업 환경에서도 안전하게 사용할 수 있습니다.
3. git rebase로 커밋 수정 및 삭제하기
git rebase는 여러 커밋을 수정하거나 삭제할 때 유용합니다.
이 명령어를 사용하면 특정 커밋을 선택적으로 제거하거나 내용을 수정할 수 있습니다.
사용 방법
git rebase -i [target-commit]
예를 들어, def456 커밋 이전의 커밋들을 수정하려면 다음과 같이 입력합니다.
git rebase -i def456
이후 편집기에서 제거하거나 수정하려는 커밋들을 선택할 수 있습니다. 커밋을 삭제하려면 pick을 drop으로 변경하고, 커밋 메시지를 수정하려면 edit을 선택합니다.
장점
- 세부 조정 가능: 여러 커밋을 세부적으로 수정하거나 제거할 수 있습니다.
- 이력 정리: 커밋 히스토리를 깔끔하게 정리할 수 있습니다.
주의사항
- 협업 시 충돌 가능성: git rebase는 히스토리를 변경하므로, 협업 중인 브랜치에서는 주의해야 합니다.
- 강제 푸시 필요: 로컬에서 히스토리가 변경된 후, 이를 원격 저장소에 푸시하려면 강제 푸시(git push --force)가 필요합니다.
4. 상황에 맞는 커밋 취소 방법 선택하기
여러 커밋을 취소하는 방법은 각기 다르며, 상황에 맞는 방법을 선택하는 것이 중요합니다.
- git revert: 히스토리를 보존하면서 안전하게 커밋을 되돌릴 때 사용합니다. 협업 환경에서 가장 권장되는 방법입니다.
- git rebase: 커밋을 세부적으로 수정하거나 삭제하고 싶을 때 사용하며, 히스토리를 깔끔하게 정리할 수 있습니다. 하지만 협업 중인 브랜치에서는 주의가 필요합니다.
각 명령어의 특성과 주의사항을 잘 이해하고, 팀원들과의 협업에 적합한 방법을 선택해 사용하면 됩니다.
공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.
'Program Development Tips > Git' 카테고리의 다른 글
[Git] Git Reset 후 돌아오는 방법: 안전하게 작업을 복구하는 가이드 (0) | 2024.09.03 |
---|---|
[Git] Gitmoji: 커밋 메시지를 더욱 직관적으로 만드는 이모지의 힘 (2) | 2024.08.30 |
[Git] 협업에서 Remote Repository에 올라간 커밋 취소하기: git revert vs git reset (0) | 2024.08.27 |
[Git] 협업에서 이 코드는 누가 작성했을까? git blame과 git log로 알아내는 방법 (0) | 2024.08.27 |
[Git] 협업 필수 가이드: git pull vs git fetch, 무엇을 언제 사용해야 할까? (0) | 2024.08.27 |