development

힘내-현재 분기 바로 가기를 밀어

big-blog 2020. 3. 15. 09:38
반응형

힘내-현재 분기 바로 가기를 밀어


Git에게 현재 추적 분기를 원점으로 푸시하도록 지시하는 지름길이 있습니까?
참고 : 기본 푸시 동작을 변경할 수 있다는 것을 알고 있지만 기본 동작을 변경하지 않는 임시 솔루션을 찾고 있습니다.

예를 들어 feature/123-sandbox-tests내가 사용하려는 지점에 있다고 가정 합니다.

git push origin feature/123-sandbox-tests

지루합니다. 바로 가기를 찾고 있습니다.

git push origin current

여기서 git은 current가입니다 feature/123-sandbox-tests.


편집 : 버전 2.0부터 git의 기본 동작 이보다 직관적 인 동작으로 변경되었습니다. 자세한 내용은 이 SO 질문 을 참조하십시오.

편집 2 : ceztko의 답변 은 설정에 관계없이 현재 분기를 푸시 할 수 있으므로 가장 좋은 답변입니다.


git push설명서 에 따르면 :

git push origin HEAD
    A handy way to push the current branch to the same name on the remote.

그래서 당신이 필요로 생각합니다 git push origin HEAD. 또한 git push -u origin HEAD원점으로 아직 푸시하지 않은 경우 로컬 지점에서 업스트림 추적 정보를 설정하는 것이 유용 할 수 있습니다 .


다음 명령을 사용하여 현재 분기로 푸시 하도록 git구성 할 수 있습니다

git config --global push.default current

그럼 그냥

git push 

코드를 현재 브랜치로 푸시합니다.


분기가 지정되지 않은 "git push"의 기본 동작 에서 비슷한 질문을 살펴 봐야 합니다.

기본적으로 현재 브랜치를 실행하도록 기본 동작을 설정하는 방법에 대해 설명합니다 git push. 아마도 당신이 필요한 것은 :

git config --global push.default current

다른 옵션:

  • 아무것도 : 아무것도 밀지 마십시오
  • 매칭 : 일치하는 모든 분기를 푸시
  • 업스트림 / 트래킹 : 현재 브랜치를 트래킹중인 대상으로 푸시
  • 현재 : 현재 분기를 밀어

git 1.7.x를 사용하는 경우 다음 명령을 실행하여 원격 추적 분기를 설정할 수 있습니다.

git branch --set-upstream feature/123-sandbox-tests origin/feature/123-sandbox-tests

그런 다음 간단히 git push모든 변경 사항을 적용 할 수 있습니다 . 더 완전한 답변을 보려면 여기에서 비슷한 질문에 대한 허용 된 답변을 참조 하십시오.

push 명령을 사용하여 현재 분기 만 푸시하려는 경우 푸시 동작을 업스트림으로 변경할 수 있습니다.

git config --global push.default upstream

.bashrc 설정에서 이러한 별칭을 사용합니다.

alias gpb='git push origin `git rev-parse --abbrev-ref HEAD`'

명령 $gpb에서 현재 분기 이름을 가져 와서 원점으로 푸시합니다.

다른 별명은 다음과 같습니다.

alias gst='git status'
alias gbr='git branch'
alias gca='git commit -am'
alias gco='git checkout'

가장 간단한 방법 : git push -u origin feature/123-sandbox-tests한 번 실행하십시오 . 이를 통해 지점을 사용하는 방식이 향상되고 로컬 구성에서 업스트림 추적 정보가 설정됩니다. 그런 다음 git push추적 된 분기를 업스트림 리모컨으로 푸시 할 수 있습니다 .

branch.<branch name>.merge원격 브랜치 이름 (경우에 따라 로컬 이름과 동일)으로 설정하고 선택적 branch.<branch name>.remote으로 푸시하려는 원격의 이름 (기본값은 원점) 으로 설정하여 구성에서 직접 수행 할 수도 있습니다. 구성을 살펴보면에 대한 집합 중 하나 일 가능성이 높으므로 master해당 예를 따를 수 있습니다.

마지막으로 push.default설정 을 고려해야합니다 . 기본값은 "일치"로, 바람직하지 않은 결과를 초래할 수 있습니다. 내가 아는 대부분의 사람들은 "업스트림"이 더 직관적이라고 생각합니다.

각 설정에 대한 자세한 내용은 git-config 매뉴얼 페이지를 참조하십시오 .

두번째 생각, 질문을 다시는 독서에, 나는 당신이이 모든 것을 알고 있다고 생각. 나는 당신이 실제로 찾고있는 것이 존재하지 않는다고 생각합니다. bash 함수는 (예상치 않은) 어떻습니까 :

function pushCurrent {
  git config push.default upstream
  git push
  git config push.default matching
}

가치가있는 것에 대한 최고의 지름길 :

.bash_profile경우 alias push="git push origin HEAD", 그래서 내가 입력 할 때마다 내가 push현재 분기로 밀고 있음을 알고 있습니다.


ceztko의 답변을 통해 나는 인생을 더 쉽게하기 위해이 작은 도우미 기능을 작성했습니다.

function gpu()
{
    if git rev-parse --abbrev-ref --symbolic-full-name @{u} > /dev/null 2>&1; then
        git push origin HEAD
    else
        git push -u origin HEAD
    fi
}

현재 분기를 원점으로 푸시하고 아직 설정되지 않은 경우 원격 추적 분기를 설정합니다.

참고 URL : https://stackoverflow.com/questions/14031970/git-push-current-branch-shortcut

반응형