git push
정보
git push
명령은 다음 두 개의 인수를 사용합니다.
- 원격 이름(예:
origin
) - 분기 이름(예:
main
)
예시:
git push REMOTE-NAME BRANCH-NAME
예를 들어 로컬 변경 내용을 온라인 리포지토리에 푸시하려면 일반적으로 git push origin main
을 실행합니다.
분기 이름 바꾸기
분기의 이름을 바꾸려면 동일한 git push
명령을 사용하지만 새 분기의 이름이라는 인수를 하나 더 추가합니다. 예시:
git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME
이렇게 하면 LOCAL-BRANCH-NAME
이 REMOTE-NAME
으로 푸시되지만 이름이 REMOTE-BRANCH-NAME
으로 변경됩니다.
“non-fast-forward” 오류 처리
리포지토리의 로컬 복사본이 사용자가 푸시하려는 업스트림 리포지토리와 동기화되지 않거나 “뒤에” 있는 경우 non-fast-forward updates were rejected
라는 메시지가 표시됩니다.
즉, 로컬 변경 내용을 푸시하기 전에 업스트림 변경 내용을 검색하거나 “페치”해야 합니다.
이 오류에 대한 자세한 내용은 "non-fast-forward 오류 처리"을 참조하세요.
태그 푸시
git push
는 기본적으로 추가 매개 변수 없이, 원격 분기와 이름이 같은 모든 일치하는 분기를 보냅니다.
단일 태그를 푸시하려면 분기 푸시와 동일한 명령을 실행할 수 있습니다.
git push REMOTE-NAME TAG-NAME
모든 태그를 푸시하려면 다음 명령을 입력할 수 있습니다.
git push REMOTE-NAME --tags
원격 분기 또는 태그 삭제
분기를 삭제하는 구문은 언뜻 보기에 약간 모호합니다.
git push REMOTE-NAME :BRANCH-NAME
콜론 앞에 공백이 있습니다. 이 명령은 분기 이름을 바꾸기 위해 수행하는 단계와 유사합니다. 그러나 여기서는 REMOTE-NAME
의 BRANCH-NAME
에 아무것도 푸시하지 않도록 Git에 지시합니다. 이 때문에 git push
는 원격 리포지토리에서 분기를 삭제합니다.
원격 및 포크
GitHub에서 리포지토리를 “포크”할 수 있음을 이미 알고 있을 수 있습니다.
소유한 리포지토리를 복제할 때 Git에 업데이트를 가져오고 푸시할 위치를 알려주는 원격 URL을 제공하세요. 원래 리포지토리로 협업하려면 전에는 일반적으로 upstream
이라고 하는 새 원격 URL을 로컬 Git 클론에 추가했습니다.
git remote add upstream THEIR_REMOTE_URL
이제 해당 포크에서 업데이트 및 분기를 가져올 수 있습니다.__
git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://HOSTNAME/OCTOCAT/REPO
> * [new branch] main -> upstream/main
로컬 변경이 완료되면 로컬 분기를 푸시하여 GitHub 끌어오기 요청을 시작할 수 있습니다.
포크 작업에 대한 자세한 내용은 “포크 동기화”을(를) 참조하세요.