이전 포스팅과 이어집니다.
지금까지의 과정을 생각해봅시다.
우선 깃허브에서 새로운 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 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
모두의 깃 & 깃허브
위 내용을 참고하였으며, 제 실습화면을 캡쳐한 사진 외의
대부분의 사진들은 인터넷 강좌에서 제공하는 자료를 캡쳐하였습니다.
깃 시리즈 포스팅의 내용 및 사진을 절대로 상업적 목적으로 무단 복사하지 말아주세요.