스택큐힙리스트

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

카테고리 없음

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

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

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


다음을 시도해봤습니다:


git reset --hard HEAD

하지만 git status 명령은 수정된 파일이 있다고 주장합니다:


브랜치 master에 있습니다
커밋을 위한 변경 사항:
(변경 내용을 취소하려면 git reset HEAD <file>...을 사용하세요)
수정됨: java/com/mycompany/TestContacts.java
수정됨: java/com/mycompany/TestParser.java

답변 1

원격 브랜치와 정확히 일치하도록 브랜치를 설정하는 것은 두 단계로 수행할 수 있습니다:


git fetch origin
git reset --hard origin/master

이를 수행하기 전에 현재 브랜치의 상태를 저장하려면(만약을 위해서), 다음과 같이 수행할 수 있습니다:


git commit -a -m 작업 저장, 혹시 모를 경우
git branch my-saved-work

이제 작업은 my-saved-work라는 브랜치에 저장되었습니다. 이후에 이를 다시 가져오거나 나중에 확인하거나 업데이트된 브랜치와 비교를 위해 차이를 확인하려는 경우 사용할 수 있습니다.


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

그런데, 당신이 있는 상황은 로컬 저장소의 현재 체크아웃된 브랜치에 푸시가 진행된 일반적인 경우와 끔찍하게 비슷해 보입니다. 최근에 로컬 저장소로 푸시했나요? 그렇지 않다면, 걱정하지 마세요 - 다른 이유로 이 파일들이 예상치 못하게 수정되었을 것입니다. 그렇지만, 로컬 저장소로 푸시하는 것은 권장되지 않으며(특히 현재 체크아웃된 브랜치로 푸시하는 것은 더욱 그렇습니다), 이점을 알고 계셔야 합니다.

답변 2

리모트 리포지토리 HEAD와 동일한 로컬 레포지토리 브랜치로 초기화하기
리모트 리포지토리와 로컬 리포지토리는 프로그래머들 사이에서 소스 코드 관리에 있어 중요한 요소입니다. 리모트 리포지토리는 다수의 개발자가 협업하고 코드를 메인 브랜치에 푸시하는 곳이며, 로컬 리포지토리는 각 개발자가 작업을 진행하고 변경 사항을 커밋하는 개인 공간입니다. 때때로 브랜치를 최신 상태로 유지하기 위해 로컬 레포지토리 브랜치를 리모트 리포지토리와 동일하게 재설정해야할 수도 있습니다. 이번 글에서는 로컬 레포지토리 브랜치를 리모트 리포지토리 HEAD와 동일하게 초기화하는 방법에 대해 알아보겠습니다.
첫째로, 리모트 리포지토리와 로컬 리포지토리의 연결을 확인해야 합니다. 이를 위해서는 로컬 리포지토리에서 다음 명령어를 실행하면 됩니다:
```
git remote -v
```
이 명령어를 입력하면 현재 로컬 리포지토리와 연결된 리모트 리포지토리의 URL이 표시됩니다. 만약 연결이 성립되지 않았다면, 다음과 같이 리모트 리포지토리를 추가해야합니다:
```
git remote add origin <리모트 리포지토리 URL>
```
둘째로, 로컬 레포지토리 브랜치를 리모트 리포지토리 HEAD와 동일하게 재설정해야합니다. 이를 위해 다음의 명령어를 사용하면 됩니다:
```
git fetch origin
git reset --hard origin/브랜치명
```
위의 명령어를 실행하면 로컬 레포지토리의 변경 사항이 삭제되고, 리모트 리포지토리 HEAD와 동일한 상태로 롤백됩니다. 여기서 '브랜치명'은 로컬 리포지토리에서 초기화하고자 하는 브랜치의 이름으로 대체해야합니다.
로컬 레포지토리 브랜치를 리모트 리포지토리와 동일하게 재설정하는 방법을 알았습니다. 이렇게 하면 개발자들은 최신 변경 사항을 활용하여 로컬 작업을 진행할 수 있습니다. 소스 코드를 효율적으로 관리하고 협업할 때 유용한 도구인 Git에서의 브랜치 초기화 방법을 배웠습니다. 이제 프로그래머들은 해당 기술을 사용하여 레포지토리를 최신 상태로 업데이트하고 원활한 개발 환경을 구축할 수 있을 것입니다.

반응형
Comments