작업하던 폴더를, 중간에 바탕화면으로 옮겼더니 이런 에러가 생겼다.
원인
! [rejected] main -> main (fetch first)는 git push할 때 생기는 에러다.
→ 기존 데이터의 손실 방지를 위해, push를 막았다.
→ 원격 저장소와 local 저장소가 동기화되어있지 않은 상태
해결법
1. 해당 폴더삭제, 바탕화면에 새로 폴더생성, repository도 다시 생성했더니 되었다.
그리고 "폴더를 삭제하지 않고도" 해결할 수 있는 방법 몇개를 가져와봤다.
2. 강제로 master branch에 push 하기
git push origin +main
git fetch origin main
변경 내용만 반영되는 것이 아니라, 소스 "전체"가 push 되어 버린다.
(기존 데이터 손실 위험)
=> 협업 중에 이 방법을 쓰면 팀원 소스가 덧씌워져서 날아갈 수 있다.
main branch를 생성해서 base를 새롭게 설정하고 (rebase), 동기화해주면 끝!
3. 동기화해서 push해보기
[에러 메시지 분석]
hint: Updates were rejected because the remote contains work that you do
// 원격에 수행된 작업이 포함되어 있어, 업데이트가 거부되었다.
hint: not have locally. This is usually caused by another repository pushing
// 로컬에 없다. 다른 repository pushing으로 발생되었다.
hint: to the same ref. You may want to first integrate the remote changes
// 원격에서 변경된 것들을 통합해라.
hint: (e.g., 'git pull ...') before pushing again.
git pull.. push하기 전에
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
// 'git push --help'의 'Note about fast-forwards'를 참고
[해결법]
1. repository 가져오기
git pull master origin
2. 다시 push 해보기
git push https://내 깃허브주소/~.git
해결된 화면
'Git' 카테고리의 다른 글
[Git] Github License 적용하기 (1) | 2024.07.22 |
---|---|
[Git] gwarning: adding embedded git repository: (0) | 2024.07.17 |
[Git] 가장 최근 commit으로 되돌아가기 (2) | 2024.01.30 |
[Git] Git 원격저장소 local로 가져오는 법 (Clone) (0) | 2023.12.16 |
[Git] ! [rejected] main -> main (non-fast-forward) 해결 방법 (0) | 2023.12.16 |