[git] git은 현재 브랜치를 어떻게 가져올 수 있습니까?

어떤 분기를 지정하지 않고 이것을 설정하는 구성 방법이 있습니까?



답변

Git은 이미 현재 분기 만 가져옵니다. 분기를 추적 분기로 설정 한 경우 원격 분기를 지정할 필요가 없습니다. git branch --set-upstream localbranch reponame/remotebranch추적 관계를 설정합니다. 그런 다음 발행 git pull [--rebase]하면 해당 분기 만 업데이트됩니다.

물론 모든 원격 추적 분기와 원격에 대한 모든 참조가 업데이트되지만 로컬 추적 분기 만 수정됩니다.

이 일반적인 작업의 입력을 줄이는 데 유용한 Bash 별칭 :

# Add an alias to pulling latest git changes into your same branch
alias pullhead='git pull origin $(git rev-parse --abbrev-ref HEAD)'

동일한 기능을 수행하는 Powershell 기능 :

Function pullhead {
    $cur_head="$(git rev-parse --abbrev-ref HEAD)"
    & git pull origin ${cur_head}
}


답변

나는 이렇게했다.

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"

또는

git pull origin $(git rev-parse --abbrev-ref HEAD)

에서 현재 분기를 추출하고 git branch원격 원본에서 해당 분기를 가져옵니다.

Seth Robertson이 말했듯이 인수가 주어지지 않으면 현재 분기 만 수정되지만 모든 원격 분기는 가져옵니다. 모든 원격 지점을 가져오고 싶지 않기 때문에 이렇게했습니다.


답변

최신 정보

내가 추가 한 이전 답변이 더 이상 작동하지 않습니다. : /. 그러나 내가 배치 한 PUSH 버전에 대해 약간의 찬성 투표를받은 후에는이 답변이 실제로 검색 엔진에서 여기로 오는 누군가를 돕고 있음을 의미 하므로이 답변을 유지하겠습니다.

새 버전의 git에 대해 다음을 시도하십시오.

$ git config --global push.default current


답변

예,에서 변경할 수있는 구성이 있습니다 .gitconfig. 예 :

[push]
  default = current

현재 분기를 푸시하여 수신 측에서 동일한 이름으로 분기를 업데이트합니다.

확인 :

git config --global --get push.default

참조 : git-config .


답변

--set-upstream플래그는 사용되지 않으며 제거됩니다. 따라서 --track또는--set-upstream-to

예 :이 지점에 대한 추적 정보를 설정하려면 다음과 같이 할 수 있습니다.

git branch --set-upstream-to=<remote>/<branch> develop


답변

다음은 원격이 있다고 가정하지 않고 origin분기가 원격을 추적하지 않는 경우 처리 하는 git 별칭입니다 .

pullh = "!f() { set -e; set -o pipefail; arr=($(git rev-parse --abbrev-ref @{u} | sed 's/\\//\\n/')); git pull ${arr[0]} ${arr[1]}; }; f"

(면책 조항 : 저는 bash 초보자이며 위의 내용을 많이 단순화 할 수 있습니다.)


답변