programing

Git: 분기된 로컬 분기의 모든 변경 내용 삭제

i4 2023. 9. 3. 12:10
반응형

Git: 분기된 로컬 분기의 모든 변경 내용 삭제

원격 지점을 추적하는 로컬 토픽 지점이 있습니다.논쟁을 위해 커밋 기록이 다음과 같다고 가정합니다.

A--B--C--O1--O2--O3 (origin/phobos)
       \
         L1--L2--L3 (phobos)

상대적 커밋 기록을 살펴보았으므로 이제 로컬에 대한 모든 변경 사항을 취소합니다.phobos분기하여 의 직접 복사본으로 되돌립니다.origin/phobos로컬 기록이 다음과 같이 표시되도록 합니다.

A--B--C--O1--O2--O3 (phobos origin/phobos)

나는 정말로 로컬 변경을 원하지 않습니다.phobos브랜치, 그리고 나는 이후에 어떤 병합도 오리진 저장소에 나타나지 않기를 정말로 원합니다. (따라서 병합은 내가 생각하는 것이 아닙니다.)

이것은 정말 쉬울 것처럼 보이지만, 제 구글푸는 저를 실패하게 했습니다.이거 어떻게 하는 거지?

git checkout phobos
git reset --hard origin/phobos

이것은 Git에게 머리를 재설정하라고 말합니다.phobos과 같은 약속으로origin/phobos일치하도록 작업 트리를 업데이트합니다.

분기를 삭제한 다음 다시 만들기:

$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos

분기를 삭제하면 분기의 reflog가 삭제됩니다.

반면에 분기를 재설정하면(다른 답변에 표시된 것처럼) reflog가 보존될 뿐만 아니라 실제로 재설정이 reflog에 기록됩니다.이렇게 하면 필요한 경우 나중에 작업을 쉽게 되돌릴 수 있습니다.

언급URL : https://stackoverflow.com/questions/2358643/git-discard-all-changes-on-a-diverged-local-branch

반응형