program story

git push.default = current와 push.default = upstream의 차이점은 무엇입니까?

inputbox 2020. 9. 17. 07:51
반응형

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 developmentproduction저장소를 모두 추적하는 것 입니다. 워크 플로는 각각 다른 메인 라인 분기를 사용할 수 있지만 혼란 스러울 수 있습니다. 코드 통합 자이고 두 저장소의 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. 자세한 내용은 도움말 페이지를 참조하십시오.

참고 URL : https://stackoverflow.com/questions/11872984/what-is-the-difference-between-git-push-default-current-and-push-default-upstrea

반응형