여러 명이 함께 진행하는 프로젝트의 경험이 아직 없어 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가 갈라져 나온 것 이었다.
.gitignore
을 작성하여 다시 commit, push한다.git push -f
를 이용했다. 강제로 local의 commit들을 서버로 push함으로서 내가 github에서 수정한 것들을 무시하도록 했다.
.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
로 간단하게 해결할 수 있는 문제였다. 하지만 처음 접했을 땐, 너무나도 낯설고 이해가 가지 않았다. 아직 익숙해지지 않았다는 증거인 것 같다. 뭐...공부해야겠다..