스택큐힙리스트

로컬 저장소 브랜치를 원격 저장소 HEAD와 동일하게 재설정합니다. 본문

카테고리 없음

로컬 저장소 브랜치를 원격 저장소 HEAD와 동일하게 재설정합니다.

스택큐힙리스트 2023. 3. 21. 15:18
반응형

로컬 브랜치를 원격 저장소의 브랜치와 동일하게 재설정하는 방법은 무엇인가요?

저는 시도해 봤어요.

git reset --hard HEAD

하지만 git status는 내가 수정한 파일이 있다고 주장합니다.

On branch master

Changes to be committed:

(use git reset HEAD ... to unstage)

modified: java/com/mycompany/TestContacts.java

modified: java/com/mycompany/TestParser.java

답변 1

원격 브랜치와 정확하게 일치하도록 지점을 설정하는 데는 두 단계가 필요합니다.

git fetch origin

git reset --hard origin/master

이 작업을 수행하기 전에 현재 브랜치의 상태를 저장하려면 (혹시 모를 경우), 다음을 수행할 수 있습니다:

git commit -a -m Saving my work, just in case

git branch my-saved-work

지금 당신의 작업은 my-saved-work 브랜치에 저장되어 있습니다. 나중에 다시 가져오거나 업데이트된 브랜치와 차이를 비교하거나 나중에 보려고 할 경우 사용할 수 있습니다.

첫 번째 예시는 원격 저장소의 이름이 origin이고, 원격 저장소의 master 브랜치가 로컬 저장소에서 현재 체크아웃된 브랜치와 일치한다는 것을 전제로 합니다.

BTW, 당신이 처한 이 상황은 보통 비빈 저장소의 현재 체크아웃된 브랜치로 push가 이루어진 경우와 매우 유사해 보입니다. 최근에 로컬 저장소로 push를 했나요? 그렇지 않다면 걱정하지 마세요 - 다른 무언가가 이 파일들을 예상치 못하게 수정하게 한 것입니다. 그렇지만 그렇다면, 비빈 저장소로 push하는 것이 권장되지 않으며 특히 현재 체크아웃된 브랜치로 push하는 것이 아닌 것을 알고 있어야 합니다.

답변 2

깃은 협업을 위한 필수적인 도구 중 하나입니다. 그러나 때로는 로컬 리포지토리의 브랜치가 원격 리포지토리의 브랜치와 다르게 되는 경우가 있습니다. 이런 경우 로컬 브랜치를 원격 브랜치와 동일하게 재설정해야 합니다. 이를 위해서는 다음과 같은 단계를 따라야 합니다.

첫째, 깃 명령 프롬프트나 깃 터미널에서 로컬 리포지토리로 이동합니다. 둘째, git fetch 명령어를 입력하여 원격 리포지토리에서 변경 사항을 가져옵니다. 셋째, 로컬 브랜치를 원격 브랜치와 동일하게 재설정합니다. 이를 위해서는 git reset --hard origin/branch_name 명령어를 입력합니다. 여기서 브랜치 이름은 원격 브랜치의 이름과 동일해야 합니다.

이렇게 하면 로컬 브랜치가 원격 브랜치와 동일해집니다. 그러나 로컬 브랜치의 변경 사항은 사라집니다. 따라서 이 작업을 수행하기 전에 로컬 브랜치의 변경 사항을 다른 곳에 백업하는 것이 좋습니다.

앞서 설명했듯이 깃은 협업을 위한 필수적인 도구입니다. 따라서 깃을 제대로 활용할 수 있도록 여러 가지 명령어를 숙지하는 것이 중요합니다. 로컬 브랜치를 원격 브랜치와 동일하게 재설정하는 방법도 하나의 중요한 명령어입니다. 이를 숙지하면 깃을 효율적으로 사용할 수 있으며 협업도 더욱 원활해질 것입니다.

반응형
Comments