이 문제로 너무 많은 시간을 해결하는데 보냈다.
문제의 원인은 로컬 저장소와 원격 저장소가 동기화되지 않아 발생하는 문제이다. 기존 데이터가 손실될 수 있기 때문에 push를 막은 것이다.
해결방법. 구글에서 찾은데로 git pull --rebase origin main (#git pull --rebase[원격저장소이름][브랜치이름])를 해보았다. 그 후에
git push 를 하였더니 아래와같이 git push --set--upstream origin main 을 하래서 그대로 하였더니 문제가 해결되었다.
문제를 해결하는 과정에서 찾아낸 유용한 명령어들을 소개 하고자 한다.
git log --branches --not --remotes // git에서 push하지 않은 커밋 확인
git reset --soft HEAD~1 //commit 상태에있는 파일중 숫자 만큼의 파일을 staged 상태로 워킹 디렉터리에 보존(잘 모르겠지만 commit상태의 파일을 곧바로 unstaged상태로 끌어내리기 위해 아래의 git reset --mixed HEAD~3 를 사용했지만 작동하지 않았음. 그래서 git reset --soft HEAD~3명령어를 사용한 후에 git reset HEAD로 STAGED상태의 파일모두를 UNstaged 상태로 변경함.
git reset --mixed HEAD~1 //commit 상태에있는 파일중 숫자 만큼의 파일을 UNstaged 상태로 워킹 디렉터리에 보존
$ git reset HEAD <file> // add 명령어로 staged상태의 파일을 Unstage로 변경하기
문제 해결에 도움을 준 글: https://realzzu.tistory.com/107
https://stackoverflow.com/questions/14203952/git-reset-asks-more
'형상관리 Git' 카테고리의 다른 글
[SourceTree] sourceTree사용 이유와 여러가지 해결방안(이전 commit으로 reset후 서버에 push하기, 이미 push한 commit메시지 수정하기, 이미 push한 commit삭제하기) (0) | 2024.03.21 |
---|---|
[Github] Repository 생성 및 내 작업 폴더 연동하기(가장 초기작업) (4) | 2024.03.19 |
Git 브랜치란 무엇인가 (0) | 2023.10.27 |
2.2 Git의 기초 - 수정하고 저장소에 저장하기 (0) | 2023.10.27 |
깃 초기 설정에서 필요한 명령어들과 알고리즘 포스팅을 위한 과정설명(중요) (0) | 2023.10.26 |