Akashic Records

Git rebase, reset, revert 본문

Git

Git rebase, reset, revert

Andrew's Akashic Records 2023. 4. 19. 15:20
728x90

git rebase, git reset, 및 git revert는 Git에서 브랜치 내 커밋 이력을 수정하거나 되돌리는 데 사용되는 세 가지 주요 명령어입니다. 각 명령어의 사용법과 기능은 다음과 같습니다.

git rebase
git rebase 명령어는 브랜치의 기반을 변경하여 커밋들을 새로운 베이스로 이동시키는 데 사용됩니다. 이 명령어는 주로 브랜치의 커밋 이력을 정리하거나 최신 상태로 유지하기 위해 사용됩니다.

사용 예시:

git rebase <대상 브랜치>

주의: git rebase는 공개 브랜치에서 사용하지 않는 것이 좋습니다. 이 작업은 커밋 이력을 변경하기 때문에 다른 사람들과 협업할 때 혼란을 초래할 수 있습니다.

git reset
git reset 명령어는 현재 브랜치의 헤드(HEAD)를 이전 커밋으로 되돌리는 데 사용됩니다. 이 명령어는 작업 트리나 인덱스를 변경할 수 있으며, 다음과 같은 세 가지 모드가 있습니다.

Soft (소프트)

git reset --soft <커밋>

소프트 모드에서 git reset은 현재 브랜치의 헤드만 이전 커밋으로 이동시키고, 작업 트리와 인덱스는 변경하지 않습니다.

Mixed (믹스드, 기본 모드)

git reset --mixed <커밋>
git reset <커밋> # --mixed 옵션 생략 가능

믹스드 모드에서 git reset은 현재 브랜치의 헤드와 인덱스를 이전 커밋으로 이동시키고, 작업 트리는 변경하지 않습니다.

Hard (하드)

git reset --hard <커밋>

하드 모드에서 git reset은 현재 브랜치의 헤드, 인덱스, 작업 트리를 모두 이전 커밋으로 되돌립니다. 이 작업은 되돌릴 수 없으므로 주의하여 사용하세요.

git revert
git revert 명령어는 특정 커밋의 변경 사항을 취소한 새로운 커밋을 생성하는 데 사용됩니다. 이 명령어는 공개 브랜치의 변경 사항을 안전하게 되돌리는 데 적합합니다.

사용 예시:

git revert <커밋>

git revert는 선택한 커밋의 변경 사항을 되돌리기 위해 반대로 작용하는 새로운 커밋을 추가합니다. 이 방법은 기존의 커밋 이력을 변경하지 않기 때문에, 협업 중인 다른 사람들이 혼란스러워지지 않습니다. git revert는 다른 사람들과 공유된 브랜치에서 변경 사항을 되돌리는 데 가장 안전한 방법입니다.

요약하면, git rebase, git reset, 및 git revert는 각각 다음과 같은 상황에서 사용됩니다:

 

  • git rebase: 브랜치의 기반이 되는 커밋을 변경하고, 커밋 이력을 정리할 때 사용됩니다. 공개 브랜치에서는 사용하지 않는 것이 좋습니다.
  • git reset: 현재 브랜치의 헤드를 이전 커밋으로 되돌리고, 작업 트리와 인덱스를 선택적으로 변경할 때 사용됩니다. 주로 로컬 브랜치에서만 사용되며, 되돌릴 수 없는 하드 리셋에 주의해야 합니다.
  • git revert: 특정 커밋의 변경 사항을 되돌리는 새로운 커밋을 생성할 때 사용됩니다. 공개 브랜치에서도 안전하게 사용할 수 있습니다.

각 명령어의 사용법과 기능을 이해하고 적절한 상황에 따라 사용하면 Git에서 커밋 이력을 효과적으로 관리할 수 있습니다.

 

728x90

'Git' 카테고리의 다른 글

Git Repository을 다른 원격지에 복사하기  (0) 2023.04.17
Git 기타 도구 및 자원  (0) 2023.03.25
Git 고급 기능  (0) 2023.03.25
Git 충돌 해결  (0) 2023.03.25
Git 브랜치 전략(Git Flow)  (0) 2023.03.25
Comments