git push
git remote 명령어를 통해 원격지로 설정된 git reposiotry에,
git push <remote> <branch>명령어를 사용하여 GitHub에 코드를 올릴 수 있습니다.
(git push 한 branch를 클라우드에서 호스팅합니다)
git push <remote> <branch>
매개 변수를 통해 어디로 push할지 지정합니다.
origin은 일반적으로 원격지를 칭합니다
(push하기 전에, git remote -v 명령어를 사용하여 원격지가 가리키는 장소를 확인합니다)
git remote add origin
https://github.com/Min-SungJo/VCS
git remote -v
git push origin main
git push origin master
local-branch와 remote-branch는 동일하지 않습니다.
git push <remote> <local-branch>:<remote-branch>
일반적으로 local-branch와 동일한 이름을 가진 remote-branch에 push를 진행하지만,
local에 있는 branch와 GitHub에 있는 branch는 동일하지 않습니다.
따라서 원한다면 아래 예제처럼,
local-branch와 다른 이름을 가진 remote-branch에 push할 수도 있습니다.
git push origin empty:main
(흔한 경우는 아닙니다)
git push -u <remote> <branch>
git push --set-upstream <remote> <branch>
git push -u 또는 --set-upstream 옵션을 사용하여,
사용자 저장소의 branch를 origin의 branch로 push할 수 있습니다.
(local branch의 upstream을 설정합니다)
별다른 옵션 없이 생성된 브랜치는 업스트림 브랜치가 없습니다.
따라서 origin 브랜치와 동일한 이름의 branch를 생성하고 git push해도,
origin branch로 push 되지 않습니다.
-u 옵션을 사용하여 로컬 브랜치의 업스트림 브랜치를 설정하면,
git push -u origin <branch>
git push 명령어만으로도 push 할 수 있습니다.
git push
-u 옵션으로 업스트림 브랜치를 설정할 때에도,
local-branch와 다른 origin branch를 설정할 수 있습니다.
git push -u origin <local-branch>:<origin-branch>
git branch -r 명령어를 사용하여 원격 브랜치를 확인할 수 있습니다.
git branch -r
만약 원격 브랜치에 main, empty가 있다면,
origin/empty
origin/main
와 같이 출력됩니다.
origin main 브랜치를 local 로 받고, commit을 더 진행할 수 있습니다.
그러면 local의 HEAD와 origin의 HEAD가 달라집니다.
이 때, 원한다면 git checkout 명령어를 사용하여 원격 브랜치의 HEAD로 이동할 수 있습니다.
(detached HEAD 방식과 같습니다)
switch
git branch -r 명령어를 사용하여 확인된 remote 브랜치가 있어도,
git branch 에 존재하지 않을 수 있지만, git switch 할 수 있습니다.
기본적으로 git clone 명령어를 사용하면 clone 하려는 git repository의 default 브랜치로 이동합니다.
그리고 git switch를 사용하여 origin branch 중 하나로 이동하면,
local에 새로운 branch를 생성하고 remote branch를 추적하도록 설정됩니다.
'SCM > Git' 카테고리의 다른 글
[Git & GitHub 11] Workflow 필요성 - 단일(main, master)브랜치만 사용 시 (0) | 2024.05.18 |
---|---|
[Git & GitHub 10] git fetch, git pull(git fetch + git merge) (0) | 2024.05.17 |
[Git & GitHub 9] GitHub란? git clone, git remote (0) | 2024.05.14 |
[Git & GitHub 8] Snapshotting(checkout, restore, reset), Patching(revert) (0) | 2024.05.10 |
[Git & GitHub 7] detached HEAD (0) | 2024.05.10 |