Record4me

시작하면 끝을 봐야지

개발일지

[TIL] 24_0205 git push하면서 reject 발생

잇츄미 2024. 2. 6. 00:46

git push 하며 뜬 rejected 

 

git switch 하기 전에 commit과 push를 마치고 이동해서 새 데이터를 add, commit했는데도 head위치가 불안정하게 이동한 줄 알았는데 이동한 브랜치에서 그전에 원격저장소에서 직접 수정한 내역을 로컬로 안 가져와서 생긴 문제였어. 리드미를 원격저장소에서 직접 수정했거든.

 

아래 같은 오류가 떠서 해결했어. 이건 두번째로 뜨는 건데 이전엔 git rebase로 해결했는데 

이런 방법도 있더라구.

 

 

해결한 방법

$ git log
$ git reset 628b04ecf2f8c1a3d6fb8f5c307fbd647fb5b284
$ git stash 
$ git pull origin props-drilling 
$ git stash pop 
$ git add .
$ git commit -m "[Del] 사용하지 않는 변수, 코드 삭제"
$ git push origin head

 

1. git log로 git을 이용한 행적을 살펴보고 돌아갈 commit의 고유번호를 확인하고 복사해서 해당 위치로 가면 작업중이던 상태로 돌아가니까 그 작업을 stash에 임시로 저장해야해

 

2. git stash로 이전 작업을 새 주소로 올려서 임시저장해 

 

 

3. 그리고 git pull 현재 브랜치의 원격 저장소를 써서 현재 지금의 위치해 있는 내 로컬저장소에 없는 원격저장소의 데이터를 pull해와, 거기에 잠시 stash에 올려둔 작업을 stasy pop으로 도로 가져와. 이렇게 하면 몇은 충돌이 있는 것 같은데 난 commit을 이때 촘촘히 했고 원본에서 별로 수정한 사항이 없던 때라 충돌이 없던 것 같아. 

 

4. 그리고 git add . 로 둘 다 저장하고 다시 commit 해주고 push해줘서 올려줭. 

 

느낀점

- 결국 git rebase와 같은 것 같지만 도와주신 분의 말씀으로는 상황에 따라 reject메세지가 다르기도 해서 그에 맞게 써야한다고 하셨어. 

- 이전에 rebase로 이전 작업을 가져오긴 했는데 잘 가져와서 코드들을 확인해봤더니 현재 작업중이던 것에 덮어씌어지거나 삭제한 것도 추가되는 부분이 있었어. 그래서 이런 일이 자주 있으면 얏되겠지 생각이 들더라ㅋㅋ.. 하하 pull과 commit 자주 해야게찌? 해야게찌? ㅋㅋㅋ

 

 

*참고사이트

- https://fe-j.tistory.com/entry/git-Stash-git-stash-pop

- https://velog.io/@hotsun1508/Git-git-stash-git-stash-pop

- https://velog.io/@sunyoung1542/Git-git-push%EB%A5%BC-%ED%95%98%EB%A0%A4-%ED%95%A0-%EB%95%8C-rejected-main-main-fetch-first-error-failed-to-push-some-refs-to-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%82%9C%EB%8B%A4

- https://sosoeasy.tistory.com/406