해결된 질문
작성
·
24
0
main브랜치에서 커밋을 1, 2, 3을 생성했는데, 커밋 2버전에서 새로운 브랜치를 생성해서 작업을 진행하려면 어떻게 해야 하나요??
checkout으로 HEAD가 해당 커밋(2번 커밋)을 가리키게 하고 거기서 브랜치를 생성하여 작업진행하는 걸까요?
아니면 revert?로 3에서 2로 변경된 내용을 새로 커밋하여 최신커밋(main commit 4)이 2의 내용을 가리키게 하여 거기서 브랜치를 새로 만드는 걸까요??
git commit - m "main commit 1"
git commit - m "main commit 2"
git commit - m "main commit 3"
git checkout 1234567 # <- main commit 2 이동
git branch test
git checkout test
#===========================================
git commit - m "main commit 1"
git commit - m "main commit 2"
git commit - m "main commit 3"
git revert 1234567 # <- main commit 2 내용으로 새로운 commit 생성
git branch test
git checkout test
)) revert의 내용을 잘 이해한건 맞겠죠??;;;;;
답변 2
1
안녕하세요, BANG 님 😀
일단, revert 개념에 대해 말씀드려요!
revet는 커밋의 내용을 거꾸로 수행하는 커밋을 새로 만들 뿐, 커밋 히스토리를 바꾸지 않아요.
그러니까, commit 4는 commit 2가 아니라 commit 3를 가리키게 됩니다.
정리하자면, revert후의 커밋 히스토리는 아래와 같은 모양이 됩니다.
commit4 -> commit3 -> commit2 -> commit1 (commit 4와 commit2는 내용은 같지만 별개의 커밋.)
Q.
"main브랜치에서 커밋을 1, 2, 3을 생성했는데, 커밋 2버전에서 새로운 브랜치를 생성해서 작업을 진행하려면 어떻게 해야 하나요??"
A. checkout을 사용하셔도 되고 revert를 사용하셔도 됩니다. 방법의 차이일 뿐 그 결과는 거의 같아요. 다만, checkout을 사용하면, test브랜치는 commit2를 가리킬테구요. revert를 사용하면, test 브랜치는 commit4를 기리키게 됩니다.
추가적으로 궁금하신 부분이 있다면, 언제든 질문해주세요!
0
안녕하세요, 인프런 AI 인턴입니다. BANG님, Git 브랜치 생성과 관련된 질문을 주셨군요.
Checkout 후 브랜치 생성:
git checkout <commit_hash>
로 커밋 2(1234567)로 이동한 후, git branch test
와 git checkout test
를 통해 새로운 브랜치를 만들어 작업을 시작합니다.Revert 후 브랜치 생성:
git revert
명령어를 사용하여 커밋 2의 변화만큼을 되돌리는(즉, 취소하는) 새 커밋을 만든 뒤, git branch test
와 git checkout test
로 새로운 브랜치를 생성합니다.git revert <commit_hash>
는 지정한 커밋의 변경내용을 되돌리는 새로운 커밋을 생성합니다. 따라서 원본 커밋이 무효화되는 것이 아니라, 그에 대응되는 반대되는 변경사항을 포함한 추가적인 커밋이 생성됩니다.checkout
후 브랜치 생성) 방법이 간단하고 명확할 수 있습니다. 과거의 특정 커밋에서 새로운 작업을 시작하고 싶다면 이 방법을 사용하는 것이 좋습니다. 이후 변경 사항들을 원래 브랜치에 병합할 것인지 아니면 독립적으로 유지할 것인지는 작업 상황에 따라 결정할 수 있습니다.다음 링크에서 추가적인 정보와 유사한 질문을 확인하실 수 있습니다:
- Git 브랜치 생성 및 관리
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.