유명한 담벼락

Git : 로컬 레포와 리모트 레포를 연결하는 두 개의 커맨드

by 담담이담

Git

git remote add origin <https://github.com/youdame/web_front.git>

remote는 리모트 레포에 관한 작업을 할 때 사용하는 커맨드이다.

remote add는 새 리모트 레포를 등록하겠다는 의미이다.

 

origin https://github.com/youdame/web_front.git 는

https://github.com/youdame/web_front.git 라는 리모트 레포를

origin이라는 이름으로 등록하겠다는 의미이다.

 

즉, 이 커맨드를 사용하면 https://github.com/youdame/web_front.git 을

origin으로 나타낼 수 있게 되는 것이다.

 

 

git push -u origin main

 

이 커맨드의 의미는

현재 로컬 레포에 있는 main 브랜치의 내용(main 브랜치와 관련된 모든 커밋)을

origin이라는 리모트 레포로 보내겠다는 의미이다.

 

이 때 로컬 레포에서 -> 리모트 레포의 같은 이름의 브랜치로 전송하는데

만약 origin이라는 리모트 레포에 main 브랜치가 없으면

main 브랜치를 생성하고 푸시를 한다.

 

이 때 -u 옵션은 무엇일까?

u는 --set--upstream의 약자이다.

이렇게 --set-upstream(-u) 옵션을 주면

로컬 레포에 있는 main 브랜치가

origin에 있는 main 브랜치를 **tracking(추적)**하는 걸로 설정된다.

 

 

tracking이라는 건

로컬 레포지토리의 한 브랜치가 리모트 레포지토리의 한 브랜치와 연결되어

그것을 계속 바라보는 상태가 되는 것이다.

 

이렇게 맺어진 연결 상태를 tracking connection이라고 한다.

만약

로컬 레포지토리에 A라는 브랜치가 있고,

리모트 레포지토리에 B라는 브랜치가 있을 때

이런 tracking connection이 서로 맺어진 경우,

B 브랜치를 A 브랜치의 upstream branch라고 한다.

 

지금은 구별하기 위해서 A와 B라고 표현했지만

보통은 같은 이름인 경우가 대부분이다.

 

이렇게 tracking connection이 한번 설정되고 나면,

사용자가 현재 main 브랜치에 위치해있을 때,

 

git push, git pull이라고만 써도

리모트 레포의 main 브랜치를 대상으로 push와 pull이 작동한다.

 

 

만약

-set-upstream(-u)옵션을 주지 않는다면,

git push origin main:main

//git push origin from:to

origin은 리모트 레포지토리를 나타내고,

main:main에서

더 먼저 나오는 main는 로컬 레포지토리의 main 브랜치(~에서)

/더 뒤에 나오는 main는 리모트 레포지토리의 main 브랜치(~으로)를 나타낸다.

 

 

즉, tracking connection이 없으면 매번 이런 식으로 git push를 해줘야 한다.

git pull도 마찬가지로 이런 식의 복잡한 표현이 필요하다.

 

그러니 처음부터 tracking connection을 설정하고

그 이후부터는 git push, git pull이라고만 써서 편하게 푸시와 풀을 하는 게 좋다.

'Git' 카테고리의 다른 글

Git : 커맨드 정리  (0) 2023.09.22

블로그의 정보

유명한 담벼락

담담이담

활동하기