sourcetip

'--set-upstream'은 무엇을 합니까?

fileupload 2023. 5. 13. 10:42
반응형

'--set-upstream'은 무엇을 합니까?

을 의미합니까?--set-upstream하십니까?

저는 git 설명서를 읽으며 이해하려고 노력했지만 잘 이해하지 못했습니다.

란을피하위해혼기,위,
git이것을 다소 애매모호하게 비난합니다.--set-upstream
장황한 것에 --set-upstream-to
동일한 구문과 행동을 사용합니다.
[ 참조 ]


git branch --set-upstream-to <remote-branch>

현재 로컬 분기에 대한 기본 원격 분기를 설정합니다.

의 미래 든모 미래래git pull 체크아웃 시), 령현명(로컬 branch out시),
는 서에커가시것입다니도에서 합니다.<remote-branch>현재 지역 지점으로 이동합니다.


명시적으로 입력하지 않는 한 가지 방법--set-upstream/--set-upstream-to인 속사것입다는니용하기그를을 사용하는 것입니다.-u다음과 같이:

git push -u origin local-branch

그러면 이후의 푸시/풀 시도에 대한 업스트림 연결이 자동으로 설정됩니다.
자세한 내용은 업스트림 분기 및 추적에 대한 자세한 설명을 참조하십시오.

때▁the경우▁you▁when▁and는▁you사▁use▁to하용▁a▁remote를 사용할 때--set-upstream 중인 합니다.

을 하고 싶은지 알 수 있다는 것을 합니다.git fetch,git pull또는git push 분기된 상태로 하려는 것으로 하고 이를합니다.로컬 분기와 추적 중인 원격 분기를 동기화된 상태로 유지하려는 것으로 가정하고 이를 위해 적절한 작업을 수행합니다.

당신은 같은 것을 성취할 수 있습니다.git branch --set-upstream-to또는git checkout --track자세한 내용은 분기 추적에 대한 git 도움말 페이지를 참조하십시오.

git branch --set-upstream <<origin/branch>>으로 더 공적으 지않으다대음체됨으로 대체됩니다.git branch --set-upstream-to <<origin/branch>>

--set-upstream 데 또는 깃. 할 수 있습니다.

원격 저장소를 추가하려면 다음 명령을 사용합니다.

  • 으로 원격 를 확인합니다.git remote -v
  • 업트림을볼없경우사용는수스사용을 합니다.git remote add upstream <URL>
  • 하려면 다음과 같이 하십시오.git remote -v

위의 동일한 명령을 사용하면 로컬 리포지토리에 여러 개의 원격을 둘 수 있습니다.

이름만 .git remote add NAME <URL>

당신의 질문은 다음과 같습니다.

가 입니까?git push --set-upstream <repository> <branchname>하십니까?

보시다시피, 저는 문제의 git 명령어가git push그것이 당신이 말한 것이기를 바랍니다.답변을 단순화하기 위해 현재 사용자가 있는 로컬 브랜치 <branchname>이 푸시 중인 업스트림 리포지토리 <repository>의 원격 브랜치와 동일한 이름을 갖도록 지정했습니다.마지막으로 공통 Git 구성을 가정합니다.

그 말과 함께, 제 대답은 이렇습니다.

그 수술에 더하여,git push--set-upstream수행, 이 옵션은 다음을 수행됩니다.git push 개 이상의 구성 변수를 설정합니다.

  • branch.<branchname>.remote = <저장소>
  • branch.<branchname>.branch = /ref/heads/<branchname>

이 명령이 하는 일은 그게 전부입니다.구성 변수의 로컬 분기에 대한 업스트림 정보(예: 원격 저장소 및 분기)를 저장합니다.

업스트림 정보는 로컬 지점 이름으로 저장됩니다.해당 지역 지점에 전화가 걸려온 경우main는 " " " 입니다.branch.main.remote그리고.branch.main.merge이 업스트림 정보가 저장되는 방식에 따라 로컬 분기에는 업스트림 정보 집합이 하나만 있을 수 있습니다.

된 변수가 수 있습니다.git config --get-regexp ^branch\.이렇게 하면 "분기"로 시작하는 모든 변수가 출력됩니다.

가 예를 마은이법러구변다수음같과때사발다용니생합될이가성한,▁are▁these에 의해 될 때 합니다.git fetch,git pull또는git push명령행에 명시적으로 지정하지 않은 경우 로컬 분기에 대한 업스트림 리포지토리 및 원격 분기를 확인합니다.되어 있는 ", " ", " 를 .git push그리고 git는 (이러한 변수를 사용하여) 사용할 원격 저장소 및 업스트림 분기를 알 수 있습니다.

권장되는 추가 판독치:

하지만 기트퀴크를 조심하세요.

<respository>가 URL 또는 파일 경로로 지정된 경우 다음 예를 참조하십시오.

git push --set-upstream git@gitlab.example.com:namespace/myproject.git master

git push는 서에 원분헤 대참한생않조성습니다지하를드기에격▁branch▁remote▁a에서 원격 를 생성하지 ..git/refs/remotes/<repository>

업스트림 리포지토리에 다음을 사용하여 이름이 지정된 경우에만

git remote add <repository> <URL>

그리고.git push --set-upstream이 이름으로 사용되었으며 모든 git 명령에서 원격 추적 분기의 전체 기능을 사용할 수 있습니다.

권장되는 추가 판독치:

참고: Windows에서 git V2.32로 테스트한 모든 명령.

--set-upstream또는 에 대한 것이 아닙니다.

그리고 있습니다.

원격을 성공적으로 가져온 경우 인수가 없는 경우에 사용되는 업스트림(추적) 참조를 추가합니다.git pull 기타 는 다음과 같습니다.

설정됩니다.

  • branch.<name>.remote
  • branch.<name>.merge

그렇게 하면 됩니다.git push어디로 밀어넣어야 하는지, 어떤 원격 분기로 밀어넣어야 하는지를 알아야 합니다.

그러나:git fetch --set-upstream(man) "는 현재 분기가 있는지 확인하지 않아 분리된 HEAD에서 실행될 때 세그먼트 결함이 발생하며 Git 2.35(Q1 2022)로 수정되었습니다.

Aevar Arnförd avarBjarmason()의 커밋 17baeaf(2021년 12월 7일)를 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- 2021년 12월 22일 커밋 dcaf17c에서)

pull, fetch--set-fault 옵션에서 segfault 수정

클레멘스 프루워스
보도자: 얀 포코른ý
사인 오프 바이: 애바르 아르뇌르드 비야르마손

의 세그먼트 결함을 수정합니다.--set-upstream24bc1a1(pull, 2019-08-19, Gitv2.24.0-rc0 -- 배치 #2에 나열된 병합)에 옵션이 추가되었습니다(pull, fetch: --set-upstreamv2.24.0에 옵션,이 추가되었습니다.

거기에 추가된 코드는 8efb889(") 이후로 "" 자체에 git branch(man)대해 우리가 하는 것과 동일한 검사를 수행하지 않았습니다.branchsegfault fixs and validation", 2013-02-23, Git v1.8.3-rc0 -- merge listed in batch #2), 이는 다시 ""git branch --set-upstream-to(man)에서 내가 지금 수정하고 있는 것과 동일한 종류의 segfault를 수정했습니다. 6183d82("branch개하다를 합니다.--set-upstream-to2012-08-20, Git v1.8.0-rc0 -- 배치 #5에 나열된 병합.

여기에 추가하는 경고 메시지는 "에 추가된 오류를 병합한 것입니다.git branch8efb889에서 오류 출력install_branch_config()그 자체가 방출합니다.
"잘라냅니다.refs/heads/ 름에서라 " 고말니합다이라다말▁"니▁from합"라고 말합니다.branch X on remote"가 아닙니다.branch refs/heads/X on remote".

새 경고:

could not set upstream of HEAD to 'X' from 'X' 
when it does not point to any branch

제 생각엔 그냥 간단하게 하는 것이 더 말이 될 것 같습니다.die()에서는 기여다, 하만검 는서에사른.--set-upstream24bc1a1에 추가되어, 우리는 대신 경고를 발령합니다.
지금은 일관성을 유지하기 위해 여기서도 같은 작업을 수행합니다.

스레드에서 원본 보고서와 함께 스레드화된 패치로 인해 이 스레드에서 이 문제를 해결하기 위해 이전에 제출된 대체 방법이 있습니다.
나는 이 버전을 만들기 전에 그것을 알아차리지 못했습니다.
저는 여기에 좀 더 자세한 경고 메시지가 있는 것이 좋다고 생각하며, 우리는 이러한 행동에 대한 테스트도 해야 합니다.

--no-rebase최근에 병합된 7d0daf3("En/pull-conflict-options', 2021-08-30, Gitv2.34.0-rc0 -- 배치 #2에 병합)를 기준으로 ""에 git pull(man)대한 옵션이 필요합니다.

언급URL : https://stackoverflow.com/questions/18031946/what-does-set-upstream-do

반응형