코드를 작성한다.

어쩐지 오늘은 손에 날개라도 달린듯 손가락이 가볍게 움직인다.

내가 봐도 깔끔하고 잘 짜인 코드를 이제 Git에 올릴 시간이다.

Push 명령어를 입력하자 '띵~' 에러 소리가 울려퍼진다.

식은땀이 흐른다. 혹시 오타가 있을까 심혈을 기울여 다시 명령어를 입력한다.

띵~ 띵~ 띵띵띵띵~

fatal 'origin' does not appear to be a git repository

 

따옴표 안의 단어는 origin이 아닐수도 있다.

위 에러는 두가지 경우에 발생한다.

1. remote 저장소의 경로에 문제가 있을때

2. 내 branch 경로에 문제가 있을때

 

내 local 저장소는 remote 저장소의 복제본을 갖는다. 

코드를 작성하고 바뀐 파일들을 commit하는 것은 내 local 저장소의 branch를 수정하는 것이고, 이를 remote저장소에도 반영하기 위해서 Push가 필요하다. 이때 local 저장소의 branch 경로를 remote저장소와 비교한다.

위의 에러는 그 경로의 불일치로 발생한다.

 

1번의 경우 경로를 저장한 파일이 손상되었거나, remote의 경로가 변경되었거나 등의 이유로 remote저장소를 찾지 못하는상황이다. 

git remote remove 'origin' 명령어를 사용하여 remote 저장소의 경로를 지워주고

(설정에 따라 remote저장소의 경로가 origin이 아닐 수도 있다.)

git remote add origin (git repo의 HTTPS 주소, 혹은 SSH)를 입력해서 다시 연결해주면 된다.

 

2번의 경우 branch를 만들때 오타(otigin 이라던지... origim 이라던지)나 오류가 발생하여 local branch의 경로가 이상해진 상황이다. 변경 상황을 잘 commit 해 둔 뒤 branch의 이름과 경로를 잘 확인하고 다시 만들자.

에러가 난 branch를 지우는게 아니다. 다시 만드는 것이다. 

내가 만드려던 branch의 이름이 feature/FE 라고 했을때 에러가 난 상황에서 branch를 다시 만든다면

 

origin/feature/FE   (원래 만드려던 정상 branch)

feature/FE (에러 branch)

otigin/feature/FE (에러 branch)

 

내 local 저장소는 이런 상태가 된다.

제대로 만들어진 feature/FE로 checkout 해 주고 에러가 난 branch를 merge하자.

remote 저장소와의 경로 불일치로 동기화가 안 될 뿐 local에는 멀쩡히 존재하는 branch이므로 아무 문제없이 merge가 된다.

내가 변경한 코드가 잘 반영되었는지 확인하고 다시 Push해주면 된다.

 

 

 

 

728x90

'잡동사니 > GIT' 카테고리의 다른 글

VScode + Git사용시 자주 사용하는 커맨드 정리  (0) 2021.11.09

우선 git이 설치되어야겠죠?

https://git-scm.com/

 

자신의 OS와 개발환경에 맞게 설정해주시면 됩니다.

환경변수나 추가적인 조정이 필요 할 수도 있습니다.

 

이 글을 보시는 분들이 기본적인 git의 개념과 사용법을 아신다고 생각하고,

제가 프로젝트를 진행하며 외울정도로 자주 사용한 커맨드만 작성해봤습니다.

 

아래는 VScode에서 git을 사용할 때 유용한 extension입니다.

 

git branch들의 graph를 시각화 하고 commit내용을 쉽게 볼 수 있습니다.

 

git clone (git repo의 HTTPS 주소, 혹은 SSH)
-----> 지금 vscode 터미널이 위치한 폴더에 repo를 복제해옵니다. 
다른 옵션을 안줬을 경우 기본 branch가 복제됩니다.

git remote update
-----> git 서버의 저장소의 상태를 업데이트합니다.

git pull
-----> git 서버 저장소에서 현재 branch의 최신 상태를 가져옵니다.

git push
-----> 내 로컬 저장소에 있는 현재 branch를 서버에 update하거나 publish 합니다.

git branch
-----> 내 로컬 git에 있는 branch의 리스트를 띄웁니다.

git branch -a
-----> git 서버에 있는 branch의 리스트를 띄웁니다.
VIM처럼 [esc] + ':' + 'q' 세개의 키를 차례로 입력해 나옵니다. (이에스시, 콜론, 알파벳 큐) 

git branch (새로운 branch명)
-----> 내 로컬 저장소에 입력한 이름으로 branch를 만듭니다.

git checkout origin/(branch명)
----->  git 서버에 있는 branch를 내 로컬 git으로 가져오면서 그 branch를 선택합니다.

git branch -D (branch명)
-----> 내 로컬 저장소에서 해당하는 branch를 지웁니다.

git merge (branch명)
-----> 현재 보고 있는 branch에 입력한 branch를 병합합니다. 충돌이 발생할 수 있습니다.

 

EX) 

프론트개발자 노딩코 씨가 서버에 존재하는 프로젝트 A를 작업하려고 하는 사용 예

git clone (project-A의 clone 주소)

-----> 서버의 프로젝트를 내 로컬로 받아옵니다.

 

git checkout origin/develop

-----> 보통 기본 branch는 master나 default입니다.

작업을 위해 develop branch를 로컬로 가져오면서 branch를 변경합니다.

 

git branch feat/frontend-nodingco

-----> develop branch의 현재 상태를 복제해 내가 작업할 branch를 만듭니다.

 

git checkout feat/frontend-nodingco

-----> 작업할 branch로 변경합니다.

 

<branch의 생성 후 작업이 진행 되었습니다... 내 작업을 업로드해봅시다!>

 

git remote update

-----> 서버 저장소의 변경사항을 update

 

git checkout develop

-----> 내 작업을 업로드할 develop branch로 변경합니다.

 

git pull

-----> 서버저장소에서 develop branch의 최신 상태를 가져옵니다.

 

git checkout feat/frontend-nodingco

-----> 작업한 branch로 변경합니다.

 

git merge develop

-----> 최신상태의 develop branch를 내가 작업한 내용에 merge합니다.

충돌이 일어난다면 VScode에서 알려주는 내용을 토대로 적절히 수정하면 됩니다.

 

git push

-----> 내가 작업한 branch를 서버저장소에 업로드합니다.

보통 develop이나 master같은 배포에 관련된 branch는 보호되어있으므로,

서버 저장소에서 merge request를 통해 code review를 받고 변경된 내용을 merge하게 됩니다.

 

 

728x90

+ Recent posts