스택큐힙리스트

기트 리베이스 취소 본문

카테고리 없음

기트 리베이스 취소

스택큐힙리스트 2024. 1. 10. 19:56
반응형

깃 리베이스를 쉽게 취소하는 방법은 무엇인가요? 기본적인 방법은 다음과 같습니다:



  1. 두 브랜치의 이전 커밋으로 돌아갑니다.

  2. 임시 브랜치를 생성하고 체크아웃합니다.

  3. 수동으로 모든 커밋을 cherry-pick합니다.

  4. 문제가 있는 리베이스된 브랜치를 임시 브랜치로 되돌립니다.


현재 상황에서 이 방법이 작동하는 이유는 두 브랜치에서 커밋을 쉽게 찾을 수 있기 때문입니다 (하나는 내 작업이고 다른 하나는 동료의 작업이였습니다). 그러나 이 접근 방식은 최적화되지 않고 오류가 발생하기 쉬운 것으로 보입니다 (예를 들어 내 작업이 포함된 두 개의 브랜치와 리베이스를 수행한 경우 같은 경우).


클래리피케이션: 하나 이상의 커밋이 재생되었던 리베이스에 대해 얘기하고 있습니다.

답변 1

가장 쉬운 방법은 리베이스가 시작되기 바로 직전 브랜치의 최신 커밋을 reflog에서 찾는 것입니다. reflog...


git reflog

그리고 일반적인 주의 사항 (--hard 옵션으로 전체 브랜치를 재설정하기 전에 반드시 확실한지 확인하십시오)을 유지하며 현재 브랜치를 해당 커밋으로 재설정합니다.


예를 들어, ref 로그에서 이전 커밋이 HEAD@{2}인 경우:


git reset --hard HEAD@{2}

Windows에서는 참조를 따옴표로 감싸야 할 수도 있습니다:


git reset --hard HEAD@{2}

후보 이전 헤드의 기록을 확인하려면 간단히 git log HEAD@{2}를 실행하면 됩니다. (Windows: git log HEAD@{2}).

분기별 reflog를 비활성화하지 않았다면, 단순히 git reflog branchname@{1}을 실행하면 됩니다. 리베이스는 최종 헤드에 다시 연결하기 전에 분기 헤드를 분리하기 때문에 이 동작을 확인하는 것이 좋습니다. 그러나 최근에는 확인하지 않았으므로 다시 확인하는 것이 좋습니다.


기본적으로 모든 reflog는 비-벌레(repository)에 대해 활성화되어 있습니다:


[core]
logAllRefUpdates = true

답변 2

Git 리베이스를 되돌리기
Git은 형상 관리 도구로 많은 개발자들에게 사랑받고 있는데, 그중에서도 리베이스(rebase)라는 기능은 효율적인 협업을 도와줍니다. 리베이스 기능은 여러 커밋을 합치거나 분할하는 등의 작업을 수행할 수 있으며, 코드의 품질과 명료성을 향상시킬 수 있습니다. 하지만 가끔은 리베이스를 잘못 수행했을 때 되돌리는 작업이 필요할 수 있습니다. 이번 글에서는 리베이스를 되돌리는 방법에 대해 알아보고자 합니다.
리베이스를 되돌리기 위해서는 다음과 같은 절차를 따를 수 있습니다. 우선, 리베이스를 되돌리고자 하는 브랜치로 이동하여 해당 브랜치에서 `git reflog` 명령어를 실행합니다. 이 명령어는 이전에 수행한 모든 작업을 볼 수 있는 로그를 보여줍니다. 그 후, `git reset --hard HEAD@{<숫자>}` 명령어를 사용하여 리베이스 이전 상태로 돌아갈 수 있습니다. 이때 숫자는 `git reflog` 명령어를 통해 찾은 리베이스 이전 작업의 번호입니다.
리베이스를 되돌리면 이전 상태로 돌아가게 되지만, 주의해야 할 점이 있습니다. 만약 해당 브랜치를 원격 저장소에 푸시했다면, 되돌린 후 다시 푸시해야 합니다. 그렇지 않으면 다른 개발자들과 작업을 공유할 수 없으므로 주의가 필요합니다.
때로는 리베이스를 되돌리는 것보다 새로운 브랜치를 만들어 작업하는 것이 더 현명할 수 있습니다. Git은 분산 버전 관리 시스템이므로 여러 브랜치를 유연하게 사용할 수 있습니다. 따라서 리베이스를 되돌리기 전에 현재 작업을 보존하고 싶다면, 리베이스를 수행하기 전에 새로운 브랜치를 만들고 이곳에서 작업을 수행하는 것이 좋습니다. 그런 다음, 원하는 경우 리베이스 작업을 버릴 수 있습니다.
이처럼 Git 리베이스를 되돌리는 방법에 대해 알아보았습니다. 리베이스는 코드를 깔끔하게 유지할 수 있는 강력한 도구지만, 잘못 사용하거나 되돌리지 않으면 문제가 발생할 수 있습니다. 따라서 리베이스 작업을 수행하기 전에 신중하게 생각하고, 필요한 경우에만 되돌리는 방법을 사용하는 것이 좋습니다. 이를 통해 협업 환경에서 생산성을 향상시키고, 원활한 개발을 이어나갈 수 있을 것입니다.

반응형
Comments