git pull을 해야 하는데 오류가 발생한다면 밑에 3가지 깃 명령어를 사용하여 해결이 가능하다.
이 명령어들은 Git을 사용하여 원격 저장소의 main 브랜치와 로컬 저장소를 동기화하는 데 사용됩니다. 각 명령어의 역할은 다음과 같습니다:
git fetch --all
- 설명: 이 명령어는 원격 저장소에서 모든 브랜치의 최신 상태를 로컬로 가져옵니다. 하지만, 로컬 브랜치에는 아무런 영향을 미치지 않고, 단지 원격 브랜치의 최신 상태를 업데이트합니다.
- 용도: 원격 저장소에서의 모든 업데이트를 확인하고 싶을 때 사용합니다. 이 명령어를 실행하면 원격 브랜치의 변경 사항이 로컬의 원격 추적 브랜치에 반영됩니다.
git reset --hard origin/main
- 설명: 이 명령어는 현재 로컬 브랜치를 원격 저장소의 main 브랜치의 상태와 일치하도록 강제로 리셋합니다. 모든 로컬 변경 사항이 삭제되며, 로컬 파일은 원격 브랜치의 상태로 덮어씌워집니다.
- 용도: 로컬 브랜치에서 모든 변경 사항을 버리고 원격 main 브랜치의 정확한 복사본으로 되돌리고 싶을 때 사용합니다. 이 작업은 되돌릴 수 없으므로, 신중하게 사용해야 합니다.
git pull origin main
- 설명: 이 명령어는 원격 저장소의 main 브랜치에서 변경 사항을 가져와서 로컬 main 브랜치에 병합합니다. git fetch와 git merge의 조합으로, 원격 브랜치의 변경 사항을 로컬 브랜치에 적용합니다.
- 용도: 원격 main 브랜치의 최신 변경 사항을 로컬 main 브랜치로 가져와 업데이트할 때 사용합니다. 이 명령어를 실행하기 전에 git fetch로 원격 브랜치의 상태를 확인하는 것이 좋습니다.
사용 시 주의사항
- git reset --hard: 이 명령어는 로컬 브랜치의 모든 변경 사항을 삭제하므로, 중요하거나 저장되지 않은 변경 사항이 있는 경우 반드시 커밋하거나 백업해야 합니다.
- 순서: 일반적으로 git fetch --all을 먼저 실행하여 원격 브랜치의 최신 상태를 가져온 후, git reset --hard origin/main으로 로컬 브랜치를 원격 상태로 리셋하고, git pull origin main으로 최종 업데이트를 수행하는 순서가 맞습니다. 다만, git reset --hard가 원격 브랜치의 최신 상태를 가져오는 작업과 병합을 모두 포함할 수 있습니다.
'GitHub 오류 및 명령어 정리' 카테고리의 다른 글
aws 보안 문제로 인한 push reject 해결법 (1) | 2024.10.11 |
---|---|
git config pull.rebase true (0) | 2024.09.25 |
git branch, switch,checkout, merge (0) | 2024.08.01 |
다른 사람의 파일을 받아 내 git에다가 push하기(Mac 기준) (1) | 2024.07.24 |
(gitHub)On branch main nothing to commit, working tree clean 해결 (0) | 2024.07.17 |