분기가 지정되지 않은 "git push"의 기본 동작
리모트 브랜치에 푸시하려면 다음 명령을 사용합니다.
git push origin sandbox
내가 말한다면
git push origin
다른 지점도 변경됩니까, 아니면 현재 지점만 업데이트됩니까?3개의 : 3개의 지점이 있습니다.master
,production
★★★★★★★★★★★★★★★★★」sandbox
.
git push
문서상으로는 명확하지 않기 때문에, 이것을 영원히 명확하게 하고 싶다고 생각하고 있습니다.
중 및 됩니까?git push
령어어정 ?? ?? ?? ? ?? ?? ??
git push
git push origin
origin
는는리리 리다다다다다
는 그것을 한다.git push [remote] [branch]
아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 맞다.
git 설정에서 push.default를 설정하면 기본 동작을 제어할 수 있습니다.git-config (1) 매뉴얼에서 다음 절차를 수행합니다.
push.default
명령줄에 refspec이 지정되지 않은 경우, 리모트에 refspec이 설정되어 있지 않은 경우 및 명령줄에 지정된 옵션에 의해 refspec이 암시되지 않은 경우 git 푸시가 실행해야 하는 액션을 정의합니다.사용 가능한 값은 다음과 같습니다.
nothing
: "푸시하지 마세요"matching
( 2.) 하는 브랜치를 . (Git 2.0 )))) ) 。양쪽 끝에 같은 이름을 가진 브랜치는 모두 일치하는 것으로 간주됩니다.
upstream
「브런치」).tracking
는 upstream된 동의어입니다.current
:simple
( 1 . . 、 2.0 git since since since 는 업스트림과 비슷하지만합니다(Git 1.7.11 、 Git 2.0 、 Git 2.0 ) 。이것은 가장 안전한 선택이며 초보자에게 매우 적합합니다.
심플 모드, 커런트 모드 및 업스트림 모드는 다른 브랜치를 아직 밀어낼 준비가 되지 않은 경우에도 작업 종료 후 하나의 브랜치를 밀어내고 싶은 사용자를 대상으로 합니다.
명령줄 예시:
현재의 설정을 표시하려면 , 다음의 순서에 따릅니다.
git config push.default
새 구성을 설정하려면:
git config push.default current
push.default를 사용하여 git의 기본 동작을 설정할 수 있습니다.
git config push.default current
또는 많은 저장소가 있고 모든 저장소가 동일한 경우
git config --global push.default current
이 설정의 전류는 기본적으로 git push를 실행할 때만 현재 분기를 푸시한다는 것을 의미합니다.
기타 옵션은 다음과 같습니다.
- nothing : 아무것도 누르지 마세요.
- matching : 일치하는 브랜치를 모두 푸시합니다(기본값).
- tracking : 현재 브런치를 트래킹 중인 모든 브런치에 푸시합니다.
- current : 현재 분기를 푸시합니다.
업데이트 - 새로운 방법
Git 1.7.11 현재 다음을 수행합니다.
git config --global push.default simple
이는 현재와 동일하게 동작하는 새로운 설정으로 루머에 따르면 v2.0부터 git으로 기본 설정될 예정입니다.
git push origin
상의 .origin
★★★★★★에 대해서git push
, 하다, 하다, 하다, 하다.
git push <remote>
서, snowledge.<remote>
는 현재 브랜치의 리모트(또는 현재 브랜치에 대해 리모트가 설정되어 있지 않은 경우는 오리진)입니다.
man 페이지의 Examples 섹션에서
난 그냥 내 코드를 브랜치에 커밋하고 GITHUB에 이렇게 밀어넣었어.
git branch SimonLowMemoryExperiments
git checkout SimonLowMemoryExperiments
git add .
git commit -a -m "Lots of experimentation with identifying the memory problems"
git push origin SimonLowMemoryExperiments
여기 Git Push에 대한 매우 편리하고 유용한 정보가 있습니다: Git Push: Just the Tip
저장소로 입니다.git push는 로컬 변경을 퍼블릭업스트림 저장소로 푸시하는 것입니다.이 「이라고 하는 리모트(가 클론인 ), 가 「라고 하는 , 과 같이.git push origin master
git push origin
는 모든 로컬브런치에서 일치하는 오리진리모트로 변경을 푸시합니다.
git push origin master
는 로컬 마스터브런치에서 리모트마스터브런치로 변경을 푸시합니다.
git push origin master:staging
로컬 마스터 브랜치에서 리모트스테이지 브랜치(존재하는 경우)로 변경을 푸시합니다.
】(2012년 3월)
주의:matching
기본 " 정책은 곧 변경될
수 있습니다(때로는 git1.7.10+ 이후).
"논의해 주세요: 푸시할 내용을 말하지 않을 때 "git push"는 어떻게 해야 합니까?"를 참조하십시오.
현재 설정(즉, 인수 없음)에서는 로컬 및 원격으로 동일한 이름으로 존재하는 모든 분기가 푸시됩니다.
이것은 보통 개발자가 자신의 공용 저장소에 푸시할 때 적합하지만 공유 저장소를 사용할 때는 위험하지 않으면 혼란스러울 수 있습니다.이 제안은 기본값을
upstream
'로 변경하는 것입니다. 즉, 현재 브랜치만 푸시하고, git pull을 끌어당기는 브랜치에 푸시하는 것입니다.
다른 로는 '하다'가 있습니다current
.' 현재 브랜치만 같은 이름의 리모트브런치로 푸시됩니다.지금까지 설명한 내용은 이 스레드에서 확인할 수 있습니다.
http://thread.gmane.org/gmane.comp.version-control.git/192547/focus=192694
지금까지의 관련 논의는 다음과 같습니다.
- http://thread.gmane.org/gmane.comp.version-control.git/123350/focus=123541
- http://thread.gmane.org/gmane.comp.version-control.git/166743
토론에 참가하려면 다음 주소로 메시지를 보내 주십시오.git@vger.kernel.org
이것을 .gitconfig 에일리어스 섹션에 넣었을 뿐인데, 그 동작이 마음에 듭니다.
pub = "!f() { git push -u ${1:-origin} `git symbolic-ref HEAD`; }; f"
.git pub
또는 와의 다른 응답git pub repo-name
맛있네요.
명령을 사용하여 현재 분기를 푸시할 수 있습니다.
git push origin HEAD
(여기서 가져옴)
의 디폴트 동작을 다음과 같이 변경할 수 있습니다.
[push]
default = current
현재 설정을 확인하려면 다음을 수행합니다.
git config --global --get push.default
git push는 모든 로컬브런치를 리모트서버에 푸시하려고 합니다.이것은 아마 원하지 않는 것입니다.이 문제에 대처하기 위한 몇 가지 편리한 설정이 있습니다.
적절한 에일리어스 "gpull" 및 "gpush":
~/.bash_profile에서
get_git_branch() {
echo `git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
}
alias gpull='git pull origin `get_git_branch`'
alias gpush='git push origin `get_git_branch`'
따라서 "gpush" 또는 "gpull"을 실행하면 "current on" 브랜치만 푸시됩니다.
에일리어스를 사용하는 것보다 git-XXX 스크립트를 작성하는 것을 선호합니다.그래서 소스 제어를 쉽게 할 수 있습니다(이러한 타입의 것에 대해서는, 모두 특정의 소스 제어 dir 를 패스상에 가지고 있습니다).
스크립트(착신)git-setpush
의합니다.remote.origin.push
값을 현재 브랜치만 푸시하는 값으로 설정합니다.
#!/bin/bash -eu
CURRENT_BRANCH=$(git branch | grep '^\*' | cut -d" " -f2)
NEW_PUSH_REF=HEAD:refs/for/$CURRENT_BRANCH
echo "setting remote.origin.push to $NEW_PUSH_REF"
git config remote.origin.push $NEW_PUSH_REF
주의해 주세요.사용하고 있는 동안,refs/for/XXX
하고 있습니다.아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 맞다.
브런치를 체크 아웃한 후 호출합니다.
git checkout your-branch
git setpush
물론 체크아웃도 할 수 있지만, 저는 한 가지 일을 잘 할 수 있는 스크립트를 좋아합니다.
이러한 작업을 자동화하기 위해 다음 함수를 .bashrc 파일에 추가했습니다.git push/git pull + 현재 브랜치 이름을 사용합니다.
function gpush()
{
if [[ "x$1" == "x-h" ]]; then
cat <<EOF
Usage: gpush
git: for current branch: push changes to remote branch;
EOF
else
set -x
local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
git push ${bname}
set +x
fi
}
function gpull()
{
if [[ "x$1" == "x-h" ]]; then
cat <<EOF
Usage: gpull
git: for current branch: pull changes from
EOF
else
set -x
local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
git pull ${bname}
set +x
fi
}
의 git
2.37.0
푸시 기본 동작을 변경하는 대신 자동 설정 원격 설정 실행
git config --global --add --bool push.autoSetupRemote true
push와할 수 있습니다.은 push로 있습니다.기본값은simple
,upstream
참고 자료: tweet docs commit에 대한 응답
언급URL : https://stackoverflow.com/questions/948354/default-behavior-of-git-push-without-a-branch-specified
'programing' 카테고리의 다른 글
메시지 "비밀번호 인증 지원이 제거되었습니다.대신 개인 액세스 토큰을 사용하십시오." (0) | 2023.04.24 |
---|---|
Swift에서 AppDelegate를 참조하려면 어떻게 해야 합니까? (0) | 2023.04.24 |
Swift에서 인덱스와 요소를 사용하여 루프를 반복하는 방법 (0) | 2023.04.24 |
가상 속성 @enterAnimation을 찾았습니다.응용 프로그램에 "Browser Animations Module" 또는 "Noop Animations Module"을 포함하십시오.각도 4 (0) | 2023.04.24 |
루비로 XLS 및 XLSX(MS Excel) 파일을 해석하시겠습니까? (0) | 2023.04.24 |