일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바네트워크
- NIO
- flet
- 자바
- 리눅스
- kotlin
- oracle
- GIT
- 인프라
- 웹 크롤링
- 뉴턴역학
- python
- write by chatGPT
- write by GPT-4
- chatGPT's answer
- 소프트웨어공학
- 자바암호
- 파이썬
- android
- 시스템
- 고전역학
- 유닉스
- 코틀린
- GPT-4's answer
- Java
- Database
- 역학
- JVM
- Spring boot
- lombok
- Today
- Total
Akashic Records
Git rebase, reset, revert 본문
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에서 커밋 이력을 효과적으로 관리할 수 있습니다.
'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 |