Git 머지 커밋 되돌리기(revert)와 머지 방식 선택의 안전성 질문
144
64 asked
깃에서 머지(Merge)를 되돌려 이전 상태로 돌아가려면 어떤 방법을 써야 하는지 궁금합니다.
fast-forward 머지인 경우에는 git reset을 이용해야 한다는 건 알겠습니다.
그런데 머지 커밋이 생성되는 일반 머지의 경우, 해당 머지 커밋에 대해 git revert를 적용해서 이전 상태로 되돌릴 수 있을 것 같은데 그렇다면 fast-forward 머지보다 머지 커밋을 생성하는 방식이 더 안전한 선택인지도 궁금합니다.
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. Next님, Git에서의 머지 전략과 머지 커밋을 되돌리는 방법에 대해 질문을 해주셨군요.
일반 머지(merge commit)와 fast-forward 머지의 차이
Fast-forward Merge: 이 방식은 소스 브랜치가 타겟 브랜치로 단순히 “앞으로 나가는” 것을 의미합니다. 중간의 히스토리가 직선으로 연결되어, 별도의 머지 커밋이 생성되지 않습니다. 이 경우 만약에 이전 상태로 돌아가고 싶다면
git reset이라는 커맨드를 활용합니다. 이 방법은 히스토리가 깔끔하지만, 브랜치의 독립적인 개발 내용이 사라지고 하나의 직선 히스토리로 이어지게 됩니다.일반 머지(or 이어폰 머지): 브랜치의 합류 지점마다 머지 커밋이 생성됩니다. 이 방식은 브랜치 간의 병합 과정을 명확하게 표시해 주고, 각 브랜치의 히스토리를 보존할 수 있습니다. 만약 한 단계 이전 상태로 돌아가고 싶다면
git revert를 사용하여 머지를 되돌릴 수 있습니다.
어떤 방식이 더 안전한가?
머지 커밋을 생성하는 일반 머지 방법은 기록이 명확하게 남기 때문에 보다 관리가 용이하고 안전한 선택일 수 있습니다. revert 기능을 통해 되돌릴 수 있기 때문에 중대한 실수나 문제 발생 시에도 해결이 비교적 쉬운 편입니다.
이는 협업 프로젝트와 같이 브랜치의 히스토리가 중요한 경우 특히 유용합니다. 하지만, 작은 프로젝트나 히스토리 관리보다 깔끔한 커밋 히스토리를 원하신다면 fast-forward로도 충분할 수 있습니다.
관련 질문이나 자세한 설명을 찾아보고 싶으시다면 다음 링크를 참조해 보세요:
- Git 머지 전략 및 안전한 커밋 되돌리기 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
깃헙 작업 완료된 develop 브랜치 질문
0
77
2
[질문] git-flow 에서 release 브랜치 생성
0
58
1
upstream연결하기
0
76
2
gitignore관련 질문
0
86
2
staging area
0
85
2
브랜치 병합 전략에 대한 지식공유자님의 생각이 궁금합니다.
0
97
1
git pull merge 요청 시 draft
0
170
2
rebase 와 3-way merge 의 근본적인 차이
0
103
2
문서가 락이 걸어져있네요.
0
77
1
vscode에서의 github로의 푸시
0
106
2
git add 동작 원리에 대한 질문
0
65
2
git flow 문의
0
114
2
git rebase 질문
0
100
2
[추가 질문] 똑같은 브랜치를 다시 pull request하는 경우.
0
172
2
pull request 취소하기
0
706
2
.gitignore
0
78
2
Commit 메시지 변경 방법
0
453
2
switch 와 checkout 차이점.
0
299
1
강의자료 누락, commit 복사질문
0
153
4
강의 교재 다운로드
0
104
1
git init에서 오류 발생
0
283
2
[추가 질문] HEAD 와 COMMIT 관계가 궁금합니다.
0
105
2
HEAD 와 COMMIT 관계가 궁금합니다.
0
140
2
github 협업 내용 관련 질문 있습니다
0
92
2

