로컬 저장소 커밋을 원격 저장소에 업로드하기

정민교·2023년 6월 4일
0

git

목록 보기
17/22
post-thumbnail

이전 포스팅과 이어집니다.

✔️git push

지금까지의 과정을 생각해봅시다.

우선 깃허브에서 새로운 repository를 생성했습니다.

그리고 이 repository를 우리의 local repo와 연결했습니다. (git remote add 를 이용해서 연결했습니다).

이제 우리의 local repo에 저장되어 있는 우리의 작업물을 remote repo에 업로드 해야합니다.

이 작업을 git push 를 통해 진행할 수 있습니다.

git push <remote-repo-name> <branch>

remote repo에다가 우리 local repo에 해당 branch에 저장된 커밋들을 업로드 합니다.

📌깃허브 브랜치 생성

우리는 git push 를 사용하여 로컬 저장소의 특정 브랜치가 가지고 있는 커밋을 원격 저장소로 업로드 할 수 있다는 것을 알고 있습니다.

git push <remote-repo-name> <branch>

그런데 이 명령은 우리의 커밋을 깃허브에 업로드하는 것 뿐만 아니라

깃허브에다가 우리가 명령줄에 명시한 브랜치도 생성합니다.

물론 이미 깃허브에 해당 이름의 브랜치가 존재한다면 브랜치를 생성하지 않습니다.

우리의 로컬 브랜치를 깃허브의 같은 브랜치로 업로드 하는 것이 보통이지만,

이 로컬 브랜치를 깃허브의 다른 브랜치로 업로드 하는 것 또한 가능합니다.

git push <remote-repo-name> <local-branch>:<remote-branch>

잘 하지는 않지만 이렇게도 할 수 있다는 것만 알아두시면 될 것 같습니다.

위 명령어는 특정 remote branch를 local branch의 upstream으로 설정할 때도 사용할 수 있습니다.

git push -u origin dogs:cats

그런데 위에서 이야기한 것처럼 이런 작업은 보통 하지 않습니다.

📌git push -u

깃허브에서 새로운 리포지토리를 생성할 때 원격 저장소를 세팅하는 법을 항상 소개해주는 것을 본 적이 있으실 것입니다.

근데 항상 거기에서 마지막 문장은

git push -u origin main

이렇게 끝나고 있습니다.

-u 옵션은 무엇일까요?

-u 옵션은 upstream을 의미합니다.

git push -u origin main

위 명령어는 아래 명령어와 같습니다.

git push --set-upstream origin main

위 명령을 수형하면 우리의 local 브랜치 main의 upstream은 remote 브랜치 main이 됩니다.

즉 local main과 origin main이 연결되는 것입니다.

이렇게 한 번 명령을 수행해주고 나면 다음 번 push 할 때 local main에서 remote main으로 push하는 경우

git push

이렇게만 명령을 수행해도 local main에서 remote main으로 push 할 수 있습니다.

물론 local에 특정 브랜치가 있다면 그 브랜치에 대해서도 수행할 수 있습니다.

예를 들어 local에 dogs라는 브랜치가 있다면

git push -u origin dogs

위 명령어를 실행에 local dogs와 remote docs를 연결하고 remote docs를 upstream으로 설정할 수 있습니다.

그리고 dogs 브랜치에서 git push 만 실행해도 깃이 자동으로 remote docs에 우리의 커밋을 업로드 해줄 것입니다.

pull 을 수행하는 경우에도 가능한데 이는 pull 포스팅에서 설명하겠습니다.


🙏🙏🙏
git 시리즈에 작성한 포스팅은

https://www.udemy.com/course/best-git-github/
유데미 강좌
https://www.yes24.com/Product/Goods/110795446
모두의 깃 & 깃허브

위 내용을 참고하였으며, 제 실습화면을 캡쳐한 사진 외의

대부분의 사진들은 인터넷 강좌에서 제공하는 자료를 캡쳐하였습니다.

깃 시리즈 포스팅의 내용 및 사진을 절대로 상업적 목적으로 무단 복사하지 말아주세요.

profile
백엔드 개발자

0개의 댓글