inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Git & GitHub, 원리부터 차근차근 - 근본깃

reset vs revert

reset과 revert중 하나를 선택해야만 하는 또다른 사례가 있을까요?

해결된 질문

148

자영

작성한 질문수 1

0

덕분에 reset과 revert의 원리를 제대로 이해했습니다.
강의에서 언급해주신 내용 이외로 또다른 사례가 있나요?

git github

답변 2

0

geek

안녕하세요 😄

내 코드를 이전의 상태로 되돌릴 때, reset 또는 revert를 사용하죠.

이때,
개발 이력을 나의 브랜치에 남겨두고 싶은 경우는 revert.
개발 이력을 나의 브랜치에 남겨두고 싶지 않은 경우reset을 사용합니다.

복잡하고 어려운 내용을 배울 땐, '사례'가 이해하는데 큰 도움을 주죠!

예를 들어볼게요.

main 브랜치에 A-B-C 커밋이 있습니다.
여기서, C 커밋에 회사의 민감한 정보를 실수로 추가했습니다.
음... API key같은 것을 말이죠!

이때는 revert 보다는 reset을 사용해야 합니다.
C 커밋을 main브랜치에서 제외하기 위함입니다.

추가적으로 궁금하신 부분이 있다면,
언제든 편하게 질문해주세요!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 자영님, 질문 주셔서 감사합니다. resetrevert를 선택해야 하는 다양한 상황에 관심이 생기셨군요. 두 명령어는 모두 커밋을 되돌리는 역할을 하지만, 상황에 따라 어떤 것을 선택할지 결정해야 하는 경우가 있습니다.

reset과 revert의 일반적인 선택 기준:

  1. 협업 시 고려 사항:

    • reset: reset은 커밋 기록을 삭제하거나 수정하기 때문에 공유된 원격 리포지토리에서 사용 시 주의해야 합니다. 이미 다른 개발자들이 해당 커밋에 기반한 작업을 하고 있다면 예상치 못한 충돌이 발생할 수 있습니다.
    • revert: revert는 커밋을 대체하지 않고, 새로운 커밋을 추가하여 이전 상태로 변경 사항을 적용합니다. 따라서 팀원과 협업하고 있을 때 더 안전한 선택이 가능합니다.
  2. 작업 흐름에 따른 차이:

    • reset: 프로젝트의 진행을 빠르게 롤백해야 하거나, 커밋을 완전히 삭제해야 할 때 주로 사용됩니다. reset은 파일의 현재 상태를 과거의 특정 커밋 상태로 변경해버리기 때문에 주의가 필요합니다.
    • revert: 특정 기능을 일시적으로 중단하고 싶을 때 자주 사용합니다. 이 방법은 과거 커밋을 취소하면서도 기록을 남길 수 있어 이후의 변경 상황을 명확하게 할 수 있습니다.

추가 사례:

  1. 리포지토리 클린업 중:
    원치 않는 커밋이 여러 개 발생한 경우 reset을 사용하여 최근 커밋을 정리할 수 있습니다. 그러나 이때는 주의해야 하며, 직접 커밋된 코드가 아니라면 revert로 안전하게 되돌릴 수 있습니다.

  2. 버전 관리 중 실수 복구:
    코드의 실수나 잘못된 머지를 발견했을 때 revert를 사용하여 실수만을 되돌리고, 원래의 커밋 기록을 유지함으로써 오류의 추적이 가능합니다.

Git에서 이러한 기능을 사용할 때마다 그 목적과 영향을 신중하게 고려해야 합니다. 사용자가 작업한 내용을 기록으로 남기면서도 변경 관리가 가능한 revert가 안전적으로 선호되는 이유입니다.

유사한 질문과 더 많은 예시는 다음의 유사한 사례를 참조할 수 있습니다:

저는 질문자님의 이해를 돕고자 유사한 주제를 다루는 기존 답변 링크를 추천해드렸습니다. 이 기능은 현재 베타 서비스 중으로, 답변이 기대에 미치지 못할 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 다시 질문해 주세요. 곧 지식공유자께서도 도움을 주실 것입니다.

깃헙 작업 완료된 develop 브랜치 질문

0

77

2

[질문] git-flow 에서 release 브랜치 생성

0

57

1

upstream연결하기

0

76

2

gitignore관련 질문

0

86

2

staging area

0

85

2

브랜치 병합 전략에 대한 지식공유자님의 생각이 궁금합니다.

0

97

1

git pull merge 요청 시 draft

0

168

2

rebase 와 3-way merge 의 근본적인 차이

0

103

2

문서가 락이 걸어져있네요.

0

76

1

vscode에서의 github로의 푸시

0

105

2

Git 머지 커밋 되돌리기(revert)와 머지 방식 선택의 안전성 질문

0

142

2

git add 동작 원리에 대한 질문

0

65

2

git flow 문의

0

114

2

git rebase 질문

0

99

2

[추가 질문] 똑같은 브랜치를 다시 pull request하는 경우.

0

170

2

pull request 취소하기

0

697

2

.gitignore

0

78

2

Commit 메시지 변경 방법

0

440

2

switch 와 checkout 차이점.

0

298

1

강의자료 누락, commit 복사질문

0

153

4

강의 교재 다운로드

0

103

1

git init에서 오류 발생

0

283

2

[추가 질문] HEAD 와 COMMIT 관계가 궁금합니다.

0

105

2

HEAD 와 COMMIT 관계가 궁금합니다.

0

139

2