git push.default = current와 push.default = upstream의 차이점은 무엇입니까?
git-config의 man 페이지는 push.default에 대한 다음 옵션을 나열합니다.
nothing - do not push anything.
matching - push all matching branches. All branches having the same name in both ends are considered to be matching. This is the default.
upstream - push the current branch to its upstream branch.
tracking - deprecated synonym for upstream.
current - push the current branch to a branch of the same name.
대부분의 경우 업스트림 분기는 일반적으로 동일한 이름을 가지며 동일한 이름의 분기 ( "현재")를 갖기 때문에 분기의 업스트림 분기로 푸시하는 것은 동일한 이름의 분기로 푸시하는 것과 동일하다고 가정합니다. )는 일반적으로 (또는 항상 정의에 따라?) 업스트림입니다. 그렇다면 차이점은 무엇입니까?
UPDATE : 자식-설정에 대한 매뉴얼 페이지 구별이 만든 있도록, (사람이 기대하는 것처럼) 업데이트되었습니다 가 지금 많은 명확하게 할 수있다.
질문의 차이점을 요약했습니다. 구성된 업스트림 분기로 upstream
푸시 하고 업스트림 분기의 이름이 현재 로컬 분기 와 동일하다고 가정하고 해당 특정 이름으로 푸시합니다. 실제로 로컬 브랜치의 업스트림 추적 브랜치가 로컬 브랜치 자체와 이름이 같다고 가정 할 이유가 없습니다.current
예를 들어, 여러 저장소에서 또는 여러 공유 개발자 리모컨에서 작동하는 경우, 당신은 종종 같은 지점의 다른 포크, 추적 끝 allen-master
또는 susan-master
트랙 둘, master
각각 알렌과 수잔의 REPOS에 지점을. 이 경우 current
해당 분기 이름이 원격에 존재하지 않기 때문에는 잘못된 설정입니다. upstream
그러나 잘 작동합니다.
보다 실용적인 예는 a development
와 production
저장소를 모두 추적하는 것 입니다. 워크 플로는 각각 다른 메인 라인 분기를 사용할 수 있지만 혼란 스러울 수 있습니다. 코드 통합 자이고 두 저장소의 master
분기를 개별적 으로 추적하고 싶다고 가정합니다 .
git checkout -b production --track production/master
git checkout -b development --track development/master
이제 각각의 리포지토리를 추적하는 두 개의 분기가 있으며 둘 다 master
명명 규칙을 전혀 사용하지 않습니다 . 브랜치 이름에 대해서는 약간의 혼동이 없습니다. 추적하는 내용을 명시 적으로 설명합니다. 그럼에도 불구하고 push.default = current
원격에는 development
또는 production
분기 가 포함되어 있지 않으므로 의미가 없습니다 .
current
현재 분기를 원격 저장소의 동일한 이름을 가진 분기로 푸시합니다.
upstream
현재 분기를 업스트림 분기로 푸시합니다.
업스트림 브랜치는 현재 브랜치의 업스트림으로 명시 적 또는 암시 적으로 정의 된 브랜치입니다. 즉, 기본적으로 푸시 및 풀이이 분기와 동기화됩니다. 업스트림 분기는 현재 분기 자체와 동일한 저장소에있을 수 있습니다. 로컬 기능 (주제) 브랜치 에서 업스트림으로 로컬 마스터 브랜치를 설정하는 것과 같은 흥미로운 작업을 수행 할 수 있습니다 .
암시 적 업스트림 설정은 branch.autosetupmerge
구성 값을 통해 수행됩니다 . git config
도움말 페이지 에서 설명서를 찾을 수 있습니다 . 명령에 대한 -u
옵션으로 명시 적 업스트림 설정이 수행됩니다 git branch
. 자세한 내용은 도움말 페이지를 참조하십시오.
'program story' 카테고리의 다른 글
build.gradle (Project)와 build.gradle (Module)의 차이점 (0) | 2020.09.17 |
---|---|
액터는 스레드와 비교하여 어떻게 작동합니까? (0) | 2020.09.17 |
주소 유효성 검사를 어떻게 수행합니까? (0) | 2020.09.17 |
varchar (max) 변수의 최대 크기 (0) | 2020.09.17 |
.NET 데스크톱 앱의 Settings.settings 대 app.config (0) | 2020.09.17 |