programing

경고: push.default가 설정되지 않았습니다.Git 2.0에서 암묵적인 값이 변화하고 있습니다.

goodsources 2023. 4. 21. 20:49
반응형

경고: push.default가 설정되지 않았습니다.Git 2.0에서 암묵적인 값이 변화하고 있습니다.

지 되지 않아 하여 Git을 할때 이 가 뜨는 했습니다.push.

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global push.default simple

분명히 어느 하나의 값으로 설정할 수 있습니다만, 그 의미는 무엇입니까? 차이가 있나요?simple ★★★★★★★★★★★★★★★★★」matching

한 클라이언트에서 변경한 경우 저장소를 공유하는 다른 클라이언트에서 작업을 수행해야 합니까?

상세한 것에 대하여는, 문서를 참조해 주세요.다만, 다음과 같이 요약해 보겠습니다.

  • matching「」를 의미합니다.git push는 모든 로컬브런치를 리모트상의 같은 이름의 브런치에 푸시 합니다.이것에 의해, 의도하지 않았던 브랜치를 실수로 밀어내기 쉬워집니다.

  • simple「」를 의미합니다.git push는 현재 브랜치만 꺼낼 브랜치로 푸시하고 이름이 일치하는지 확인합니다.이것은 보다 직관적인 동작이기 때문에 디폴트가 이 동작으로 변경됩니다.

이 설정은 로컬클라이언트의 동작에만 영향을 줍니다.명령줄에서 푸시할 브랜치를 명시적으로 지정함으로써 덮어쓸 수 있습니다.다른 클라이언트는 다른 설정을 가질 수 있습니다. 푸시할 분기를 지정하지 않은 경우에만 작업에 영향을 줍니다.

오래된 게시물인 것은 알지만 같은 문제에 부딪혀 답을 찾는 데 어려움을 겪었기 때문에 조금 덧붙여야겠다고 생각했습니다.

@hammar @hammar로 하다「」를 사용합니다.push.default simple이는 어떤 면에서는 브런치에 트래킹을 설정하기 때문에 밀고 당길 때 리모트나 브런치를 지정할 필요가 없습니다.matching옵션은 모든 브런치를 디폴트 리모트상의 대응하는 브런치에 푸시합니다(다른 방법으로 repo를 설정하지 않는 한 처음 설정된 브런치입니다).

앞으로 다른 사람들이 유용하다고 생각했으면 하는 한 가지는 제가 OS X Mountain Lion에서 Git 1.8을 실행하고 있었는데 이 오류를 본 적이 없다는 것입니다.Mavericks 실행 중)가 갑자기 .git --versiongit version 1.8.3.4 (Apple Git-47)OS os os os os os os os os os os 。

설정내의 「심플」한 값을 불평하는 메세지가 git 로부터 수신되면, 사용의 git 버전을 확인해 주세요.

또한 Git를 1.7.4에서 1.8.3.4로 업그레이드한 Xcode(Mac에서 Mountain Lion을 실행하는 Mac에서)를 업그레이드한 후에도 업그레이드 전에 시작된 셸은 git 1.7.4.4를 실행하고 있으며 글로벌 구성에서 push.default의 '심플' 값에 대해 불만을 제기했습니다.

해결책은 이전 버전의 git을 실행하는 셸을 닫고 새 버전을 사용하는 것이었습니다.

Ubuntu 16.04(Git 2.7.4에 부속)에서는 큰 경고 메시지가 표시되지만 Arch Linux에서는 표시되지 않는 이유가 궁금했습니다.Git 2.8(2016년 3월)에서 경고가 삭제되었기 때문입니다.

Git 버전 2.0 전후로 이행하는 동안 사용자는 push.default 설정 변수를 설정하지 않고 git push를 실행하면 상당히 큰 경고를 받곤 했습니다.이전이 오래 전에 완료되었기 때문에 더 이상 경고를 하지 않습니다.

Git8 Git 2.8을 설정할 없는 되지 않습니다.push.default 「」를 하는 하고,'simple'★★★★★★ 。

중복될 수 있는 다른 스레드에서 내 답변을 가져왔어...

GIT 문서:Git 문서

자세한 내용은 다음과 같습니다.로 말하면, 요,,,simple를 밀어넣을 뿐입니다.current working branch리모트에서도 같은 이름을 가지고 있는 경우만 가능합니다.은 초보자에게는 이며, 의 .GIT 2.0

반에 whereas whereas.matching는 리모트상에서 같은 이름의 브런치를 모두 로컬로 푸시합니다.(현재 동작하고 있는 브랜치와는 무관합니다).이는 공유조차 원하지 않을 수 있는 브랜치를 포함하여 많은 브랜치가 푸시될 수 있음을 의미합니다.

으로 사용하는으로는 보통 합니다.current(항상 변경을 위해 분기하기 때문에) 현재 동작하고 있는 브랜치를 푸시합니다.할 만한 것은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」simple

push 를 합니다.디폴트
지정되지 않은 가 실행해야 합니다.refspec은 git push로 지정합니다.특정 워크플로우에 적합한 값은 여러 가지가 있습니다.예를 들어 순수하게 중앙 워크플로우(즉, 가져오기 소스가 푸시 대상과 동일)에서는 업스트림이 필요할 수 있습니다.사용 가능한 값은 다음과 같습니다.

nothing - refspec이 명시적으로 지정되지 않는 한 아무것도 푸시하지 마십시오(오류).이것은 주로 항상 노골적으로 말함으로써 실수를 피하고 싶은 사람들을 위한 것입니다.

current - 현재 분기를 눌러 수신측에서 동일한 이름으로 분기를 업데이트합니다.중앙 워크플로우와 비중앙 워크플로우 모두에서 작동합니다.

upstream - 현재 브랜치를 현재 브랜치로 되돌립니다.이 브랜치는 보통 현재 브랜치(@{branch}라고 불립니다)에 통합되어 있습니다.이 모드는 일반적으로 꺼낼 수 있는 동일한 저장소(예: 중앙 워크플로우)로 푸시하는 경우에만 의미가 있습니다.

simple - 집중형 워크플로우에서는 업스트림과 같이 작업하여 업스트림 브랜치의 이름이 로컬 브랜치와 다를 경우 푸시를 거부합니다.

통상 사용하는 리모트와는 다른 리모트에 푸시 할 때는, 현재의 상태로 동작합니다.이것은 가장 안전한 선택이며 초보자에게 적합합니다.

Git 2.0에서는 이 모드가 기본 모드가 됩니다.

matching - 이름이 같은 브랜치를 양 끝에 모두 푸시합니다.이를 통해 푸시하는 저장소는 푸시되는 일련의 브랜치를 기억하도록 합니다(예를 들어 항상 maint와 master를 푸시하고 다른 브랜치를 푸시하지 않는 경우 푸시하는 저장소는 이들2개의 브랜치를 가지며 로컬유지 및 마스터는 거기에 푸시됩니다).

이 모드를 효과적으로 사용하려면 git push를 실행하기 전에 모든 브런치를 푸시할 준비가 되어 있는지 확인해야 합니다.이 모드의 포인트는 모든 브런치를 한 번에 푸시할 수 있도록 하는 것입니다.보통 한 브랜치에서만 작업을 완료하고 다른 브랜치가 완료되지 않은 상태에서 결과를 푸시하는 경우 이 모드는 사용자에게 적합하지 않습니다.또한 이 모드는 다른 사용자가 공유 중앙 저장소에 새 분기를 추가하거나 사용자가 제어할 수 없는 기존 분기의 끝을 업데이트할 수 있으므로 공유 중앙 저장소에 푸시하는 데 적합하지 않습니다.

이것은 현재 기본이지만 Git 2.0에서는 기본값이 단순하게 변경됩니다.

언급URL : https://stackoverflow.com/questions/13148066/warning-push-default-is-unset-its-implicit-value-is-changing-in-git-2-0

반응형