git에서 "push -u"는 로컬 브랜치 버전을 원격 병합에 업로드한다는 의미이며, "-u" 매개변수 추가 시 원격 브랜치에 푸시의 기본값을 기록한다는 의미로 다음에 계속해서 푸시한다는 의미입니다. 원격 브랜치에서 작업할 때 push 명령은 "git push"로 축약될 수 있습니다.
이 문서의 운영 환경: Windows 10 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!