! [rejected] master -> master (fetch first)
! [rejected] master -> master (fetch first)
error: failed to push some refs to 깃 주소
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
문제
가져오기(fetch) 전에 이 저장소에 커밋할 수 없음을 보여줍니다. 현재 작업 중인 로컬 저장소가 동기화되지 않았을 때 발생한다. 동기화되지 않은 상태에서 다시 push 하면 데이터가 소실될 수 있어하고 경고하여 Git이 버전 유지 관리를 보호하기 때문에 발생합니다.
커밋을 시도하면 최신 변경 사항이 엉망이 될 수 있습니다. Git이 변경하기 전에 로컬 시스템에 최신 복사본을 유지하도록 강제하는 이유입니다.
(비추천) 트리가 손상될 수 있으므로 저장소를 커밋과 병합하도록 강제하는 것은 비추천 드립니다.
git push origin master --force
해결방법
trial1. (failed) gitlab사용하는데 다른 블로그에서 소개한 임시방편으로는 도저히 되지 않았다.
#최신사항 동기화
git pull origin main
#강제 push
git push origin +main
팁
git pull은 fetch + merge를 동시에 수행하나 이러한 간단한 명령어 때문에 에러가 나면 찾기 쉽지 않아 보통 fetch, merge를 사용한다.
trial2. (success) 영문 검색해서 메시지에 나온 것처럼 fetch 하는 방법 적용
1. 가져올 때 차이점을 비교 대조해서 반영하여 병합한다.
git fetch origin master
git merge origin master
Please enter a commit message to explain why this merge is necessary, especially if it merges an updated upstream into a topic branch
(1). i를 누른 후merge에 대한 message를 입력한다.
i(insert) 메시지를 입력한다
(2). esc + :wq를 입력 후 enter
esc(exit) + w(write) q(quit)
2. git에 반영한다. (보통의 프로세스)
git add .
git commit -m 'your commit message'
git push origin master
비번 입력하고 나면 성공적으로 반영됨
'CS > GIT' 카테고리의 다른 글
[GIT].DS_Store 제거하기 (0) | 2022.01.13 |
---|---|
[GIT]ssh: connect to host github.com port 22: Connection refused (0) | 2021.11.22 |
[Git] Troubleshooting: remote: HTTP Basic: Access denied fatal: Authentication (0) | 2021.11.21 |
[Git]Troubleshooting: git permission denied (publickey) (0) | 2021.11.17 |
[GIT]파이썬 가상환경 설정 venv (0) | 2021.11.10 |