Git Error: fatal: invalid refspec

김민기·2022년 4월 24일
1

Programmers_TIL

목록 보기
20/21
post-thumbnail

저번 과제 코드 리뷰를 적용하고

git add .

git commit -m "코드리뷰 반영!"

push를 하려는데...

git commit 명령에서 아래와 같은 에러가 발생한다...

??????????????

뭐지 과제 제출할 때까지는 멀쩡했는데 무슨 오류인지

검색을 해봤더니...

https://velog.io/@thepenielcho/src-refspec-error

다양한 방법들이 소개되었지만

현재 내 상황과는 전혀 맞지 않는다...

4주차 과제를 하면서 브랜치를 3주차 과제로 만들었어서... (주차개념이 아닌 과제 차수로 생각하다보니 3번째 과제라 3으로 만들었...)

혹시 그것 때문인가 생각해 봤는데

근데 레파지토리가 다른데 영향이 있을까??

과제 레파지토리가 다르기 때문에 브랜치 이름이 같더라도 문제는 없을것 같은데...

흐음...

고민을 하던 중 에러를 자세하게 한번 읽어 보았다.

/origin/pr/*

/pr/* pr 디렉토리 내부 전체를 경로로 잡고 있는데.. pr 디렉토리??

혹시 몰라 1주차 과제의 git config 파일과 현재 과제 git config를 비교해 보았다.

뭔가 불순물이 섞여 있다...

1주차 config 파일에는 fetch가 한개만 존재하는데 3주차 config(오른쪽)에는 fetch가 3개나 존재한다.
게다가 마지막에 추가되어 있는 fetch에 에러와 같은 문장이 있다!
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

1주차 과제와 같은 fetch를 제외하고 삭제하니 정상적으로 커밋을 성공했다!

저 pr은 언제 추가된 것인가....

처음에는 본가에서 수정하고 커밋한거라 네트워크 인증 때문에 git에서 에러가 발생한다고 생각했다.
그래서 다음날 집에 도착해서 다시 커밋하면 정상적으로 실행되겠지 했는데...

아마 내 추측으로는 코드리뷰를 위해서 fetch와, pull 같은 명령어를 남발하다 발생한 것으로 보인다..
코드 리뷰를 더 자세하게 하기 위해서 항상 코드를 복사해와서 실행시켰는데 브랜치를 한번에 받아올 수 있는 방법이 없을까 고민하다가

https://blog.outsider.ne.kr/1204
이런 방법을 사용했던 것으로 기억하는데
(물론 위와 같은 방법이 잘못되었다는 것은 절대 아니다. 잘못 쓴 내잘못이지...)

그러면서 config에 뭔가 잘못 추가되지 않았던게 아닐까?

생각해보면 에러 속에 답이 있었는데 혼자서 이상한것만 계속 찾아보고 있었다...

약간 깃헙 관련 공포증이 생긴거 같은 기분... 깃이 제일 무섭다.. 잘못 수정하면 다른 사람들에게 피해가 갈까봐 혹은 현재까지 작성한 것들이 다 삭제 될까봐... 깃 연습도 정말 많이 해서 이 두려움을 없애야지!

정리

  1. 에러를 정확하게 파악하자! 단순히 내 느낌보다 에러에 정답이 있을 가능성이 있다. 에러를 쉽게 넘어가지 말고 자세하기 파악하자
  2. 구글 검색에 에러를 검색하면 쉽게 답을 찾을 수 있지만, 그 전에 어떤 검색을 해야할지 명확하게 파악하자!
  3. git을 두려워 하지말고 극복하자!

0개의 댓글