>  기사  >  개발 도구  >  push -u는 git에서 무엇을 의미합니까?

push -u는 git에서 무엇을 의미합니까?

WBOY
WBOY원래의
2022-07-01 10:36:5017812검색

git에서 "push -u"는 로컬 브랜치 버전을 원격 병합에 업로드한다는 의미이며, "-u" 매개변수 추가 시 원격 브랜치에 푸시의 기본값을 기록한다는 의미로 다음에 계속해서 푸시한다는 의미입니다. 원격 브랜치에서 작업할 때 push 명령은 "git push"로 축약될 수 있습니다.

push -u는 git에서 무엇을 의미합니까?

이 문서의 운영 환경: Windows 10 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.

git에서 push -u는 무엇을 의미하나요?

git push 명령은 로컬 브랜치 버전을 원격지에 업로드하고 병합하는 데 사용됩니다.

일반적으로 git push 명령은 로컬 창고를 원격 창고로 푸시할 때 사용됩니다. 초보자인 나는 인터넷에서 일부 튜토리얼을 git push할 때 -u 매개변수를 가져오는 반면 일부는 가져오지 않는 것을 보았습니다. 실제 푸시 결과에는 차이가 없습니다. -u 매개변수가 무엇을 하는지 궁금합니다.

잠시 검색한 끝에 여러분의 설명과 분석 중 일부를 요약하고 기록했습니다.

매개변수 분석:

우선 git push에 대한 설명이 있습니다:

-u

–set-upstream

최신 상태이거나 성공적으로 푸시된 모든 브랜치에 대해 업스트림(추적)을 추가하세요. ) 참조, 인수가 없는 git-pull(1) 및 기타 명령에서 사용됩니다. 자세한 내용은 git-config(1)의 Branch.8a11bc632ea32a57b3e3693c7987c420.merge를 참조하세요.

이 설명에서 다음을 볼 수 있습니다. u 매개변수는 다음 변수

branch.8a11bc632ea32a57b3e3693c7987c420.merge

branch.8a11bc632ea32a57b3e3693c7987c420.merge와 Branch.8a11bc632ea32a57b3e3693c7987c420.remote와 관련되어 있으며 함께 해당 분기의 업스트림 분기를 정의합니다. 이는 git fetch/git pull에 병합할 브랜치를 알려주고 git push에도 영향을 줄 수 있습니다.

그리고 업스트림은 GitHub 저장소와 같이 다른 사람들이 가져올 기본 저장소를 나타냅니다. -u 옵션은 자동으로 업스트림을 설정하여 저장소를 중앙 저장소에 연결합니다. 이렇게 하면 나중에 Git이 푸시하려는 위치와 가져오려는 위치를 "알게"되므로 매개변수 없이 git pull 또는 git push를 사용할 수 있습니다.

원격 원격지나 브랜치를 지정하지 않고 브랜치에서 git pull을 하면 git은 어디에서 가져올지 알기 위해 브랜치.8a11bc632ea32a57b3e3693c7987c420.merge 설정을 확인합니다. 그리고 푸시하려는 브랜치에 대해 이 정보를 설정하는 것은 git push -u 명령입니다.

이 시점에서 간단히 말하면 -u 매개변수를 가져오는 것은 실제로 push의 기본값을 원격 브랜치에 기록하는 것과 동일하므로 다음에 원격 브랜치를 계속해서 푸시하려고 할 때 push 명령을 다음과 같이 사용할 수 있습니다. 약칭 그냥 git push 하세요.

표시 예:

이 점을 설명하기 위해 아래에 예가 표시됩니다.

andy@AndyMacBookPro:/usr/local/github/andy/php-examples$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> test

이것은 -u 매개변수를 사용하지 않고 나중에 끌어오려는 분기 매개변수를 생략한 경우의 결과입니다. 현재 분기에 대한 트랙이 없기 때문에 당기십시오. 따라서 어디에서 끌어오려는지 알 수 없으므로 이것이 trach 분기를 지정하는 -u 매개변수의 의미입니다.

실제로 -u를 지정한 후 .git/config로 이동하여 GIT 구성 파일을 볼 수 있습니다. 아래에서 "test" 분기의 기록을 볼 수 있습니다.

[branch "master"] 
 remote = origin
merge = refs/heads/master 
[branch "test"]
remote = origin
merge = refs/heads/test

이런 방식으로 git은 현재 테스트에서 원격 및 원격 파일 정보를 병합합니다. git push 시 -u 매개변수를 포함하지 않으면 구성에 "테스트" 항목이 없습니다.

 [branch "master"]
    remote = origin
    merge = refs/heads/master

구성 지침은 Git에게 2가지 사항을 알려줍니다.

마스터 브랜치에 있을 때 기본 원격은 원본입니다.

git pullmaster 브랜치(원격 및 브랜치가 지정되지 않음)에서 사용되는 경우 기본 원격(소스)을 사용하고 원격 마스터 브랜치의 변경 사항을 병합하세요.

구성 수정

수동으로 .git/config로 이동하여 GIT 구성 파일의 내용을 수정하거나 명령줄을 사용하여 이러한 옵션을 설정할 수 있습니다.

 $ git config branch.master.remote origin
 $ git config branch.master.merge refs/heads/master

명령을 사용하여 구성하면 특정 오류 수정 기능이 있습니다. 예를 들어 존재하지 않는 분기를 입력했거나 git 원격 추가 작업을 수행하지 않았습니다. 최신 git에서는 git Branch --set-upstream-to=origin/master master를 사용하시길 바랍니다

사실 -u 매개변수를 추가하여 git push -u Origin master 명령을 실행하는 것은 git push Origin master를 실행하는 것과 같습니다. 및

git Branch --set-upstream 마스터 원본/마스터.

따라서 원격 브랜치에 코드를 푸시하고 원격 브랜치로 계속 푸시하려는 경우 푸시 명령에 -u 매개변수를 추가하여 후속 푸시 명령 입력을 단순화할 수 있습니다.

추천 학습: "

Git Tutorial

"

위 내용은 push -u는 git에서 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.