git push 오류 수정하기

timo·2021년 7월 3일
0

troubleshooting

목록 보기
4/11
post-thumbnail
post-custom-banner

여러 명이 함께 진행하는 프로젝트의 경험이 아직 없어 git 또한 적극적으로 사용해볼 기회가 없없다. 그러던 와중 맥북과 윈도우 데스크탑을 모두 사용하게 되었다. 두 컴퓨터에서 학교 과제물들을 동시에 효과적으로 작업하기 위해 git과 github를 사용해보기 시작했다.

문제 상황

아주 기초적인 부분만 공부하고 사용하던 그때, 문제가 발생했다!

github에서 내가 올린 코드들을 보던 중, config.json과 같은 파일들이 Public Repository에 push되어진 것을 확인했다. 물론 아무도 볼 사람은 없겠지만은.. github에서 쓰레기통 아이콘 버튼을 통해 삭제했다.

다음날 과제를 마무리하고 commit, push를 진행하려고하자 오류 메세지와 push를 할 수 없었다. 친구의 추천으로 설치해둔 소스트리로 확인해보니 낯선 형태의 히스토리를 확인할 수 있었다.

master와 origin/master로 나뉘어져 있었고, 1개 앞 6개 뒤 등의 표현이 적혀 있었다.

현업 개발자분들, 아니 한두번 프로젝트를 해보신 분들에게도 정말 아무것도 아닌 문제라고 생각한다😭😭 git을 처음 다루고 공부하는 차원에서 해결 과정을 기록으로 남겨보려고 한다.

문제 진단

master와 origin/master의 구체적인 의미와 기타 git관련 정보들을 추가적으로 검색해 공부하니 다음과 같은 상황으로 이해할 수 있었다.

내가 github에서, 즉 origin 원격 저장소의 파일들을 삭제했고, 반면 내 컴퓨터의 파일은 그대로이니, 저렇게 branch가 갈라져 나온 것 이었다.

해결책

  1. 원격 저장소, origin/master을 현재 내 컴퓨터와 같은 형태로 만들고
  2. .gitignore을 작성하여 다시 commit, push한다.

1. 원격 저장소, origin/master을 현재 내 컴퓨터와 같은 형태로 만들고

git push -f

를 이용했다. 강제로 local의 commit들을 서버로 push함으로서 내가 github에서 수정한 것들을 무시하도록 했다.

2. .gitignore을 작성하여 다시 commit, push한다.

다음과 같이 .gitignore을 작성해서 최상위 디렉토리에 위치시켰다.

나의 파일들은 advancedWeb이라는 폴더에 week10, week11 등 주차 별로 간단한 프로젝트 파일들이 위치하고 있는 형태이다. 따라서 **/를 활용하여 작성했다.

하지만! push후에도 .gitignore이 제대로 적용되지 않는 것을 확인했다. 구글링 결과 git rm --cached <fileName> 명령어를 통해 원격 저장소의 파일을 삭제한 뒤, 다시 push를 진행해야 했다.

git rm -r --cached .
git add. 
git commit -m "Modify .gitignore"
git push

정상적으로 수정되고 commit, push가 가능해졌다!

아직 너무 git의 개념과 상황에 대한 대응이 '막막하다'라는 느낌을 많이 받는다. 지금 돌아보니 git push -f로 간단하게 해결할 수 있는 문제였다. 하지만 처음 접했을 땐, 너무나도 낯설고 이해가 가지 않았다. 아직 익숙해지지 않았다는 증거인 것 같다. 뭐...공부해야겠다..

profile
Backend Developer
post-custom-banner

0개의 댓글