데이터 공부/Python

[Git] git push 에러 / git pull

민몽 2023. 1. 12. 23:31

안녕하세요. 민몽입니다:>

최근 데이터 분석 스터디를 진행하면서 공부한 내용을 Git에 업로드하려고 하는데 계속 아래와 같은 에러가 발생했어요..

구글링 해본 결과 아래와 같은 경우에 해당 오류가 발생한다는 것을 알게 됐어요.
1. 다른 사용자 또는 멤버(=통상 User)가 remote origin/main에 수정 commit한 경우
2. commit을 pull하기 전에 내가 같은 브랜치에 수정한 경우
3. pull하지 않은 상태에서 commit 한 경우


저의 경우에는 깔끔하게 정리하려고 깃허브 웹페이지에서 직접 폴더 만들고 pull 을 하지 않았던게 문제였다고 판단했어요.


찾은 해결 방법으로는
1. git pull 시에 –allow-unrelated-histories 옵션 추가하기

git pull origin main –-allow-unrelated-histories

 

git에서는 서로 관련 기록이 없는 두 프로젝트를 병합할때 기본적으로 거부하는데, 이 거부를 허용해주는 명령어에요.
branch에 pull할 권한이 있다면 이 방법 사용할 수 있지만, pull할 권한이 없다면 다음 방법들 중 하나를 사용합니다.

 

2. GitHub에서 Git Repository에서 과거 Commit내역 삭제
과거 커밋내역을 삭제해도 상관없는거라면 과거 커밋내역 다 삭제하고 push 합니다.


3. git pull 시에 --force 옵션 추가
→  위 방법으로 해결이 안돼서 이 방법으로 시도해봤는데 push는 됐으나 이 전에 폴더 만들었던 커밋 내용 다 날아갔어요 ^-^..... 

약간 멘붕하긴 했는데 .. 앞으로는 꼬옥 git pull 해주기로.. 약속했습니다..
아직 git이 익숙하지 않아서 얼렁뚱당 해결은 했지만 공부가 더 필요하다고 느꼈습니다 ..

 

아래는 해결 방법을 찾으면서 추가로 공부했던 내용이에요.


원격 저장소에서 로컬 저장소로 소스 가져오기


pull : 원격 저장소의 소스 가져오고 해당 소스가 현재 내 소스보다 더 최신 버전이라면 지금 버전을 해당 소스에 맞춰 올림. ( merge )

git pull origin master

 

fetch : 단지 소스 가져올 뿐 merge X

git fetch origin