itsource

Git - 푸시 현재 분기 바로 가기

mycopycode 2023. 5. 12. 22:16
반응형

Git - 푸시 현재 분기 바로 가기

Git에게 현재 추적 지점을 오리진으로 밀라고 말하는 지름길이 있습니까?
참고: 기본 푸시 동작을 변경할 수 있지만 기본 동작을 변경하지 않는 애드혹 솔루션을 찾고 있습니다.

예를 들어, 분기 중이라고 가정합니다.feature/123-sandbox-tests저는 사용할 것입니다.

git push origin feature/123-sandbox-tests

지루하네요.지름길을 찾고 있습니다.

git push origin current # <- example, not working

Git이 알고 있는 전류의 위치feature/123-sandbox-tests.


Edit: 2.0 버전부터 Git의 기본 동작이 보다 직관적인 동작으로 바뀌었고, 이것이 제가 이루고 싶었던 입니다.자세한 내용은 이 SO 질문을 참조하십시오.

편집 2: 설정에 상관없이 현재 분기를 푸시할 수 있기 때문에 ceztko의 답변이 가장 좋습니다.

설명서에 따르면:

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

기타 옵션:

  • nothing : 아무것도 누르지 않음
  • matching : 일치하는 분기를 모두 푸시합니다.
  • upstream/tracking : 현재 분기를 추적 중인 대상으로 푸시
  • current : 현재 분기를 푸시합니다.

.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'

궁극적인 지름길은 다음과 같습니다.

내 안에서.bash_profile있습니다alias push="git push origin HEAD"그래서 내가 타이핑할 때마다.push제가 지금 다니고 있는 지점으로 가고 있다는 것을 알고 있습니다.

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

방법: 가간한방법단실: 행장실.git push -u origin feature/123-sandbox-tests한 번. 그러면 사용자가 익숙한 방식으로 분기가 푸시되고 로컬 구성에 업스트림 추적 정보가 설정됩니다.에는 그냥 그후에, 은그냥신당.git push추적된 분기를 업스트림 원격으로 푸시합니다.

.branch.<branch name>.merge 이름) 및"" " " " " " " " " " " " " " " (" " " (" " " " " " " " " " " " " " " 이 있습니다.branch.<branch name>.remote밀어넣을 원격의 이름으로 이동합니다(원점으로 이동). 아마 이미 이 중 가 이미되어 있을 예요.master그래서 당신은 그 예를 따를 수 있습니다.

마지막으로, 다음 사항을 고려해야 합니다.push.default으로 "로 설정되며,치 못한 결과가발생할 수 .기본적으로 "일치"로 설정됩니다. 이 경우 원하지 않거나 예기치 않은 결과가 발생할 수 있습니다.제가 아는 대부분의 사람들은 "업스트림"이 더 직관적이라고 생각하고, 이는 현재의 분기만 밀어냅니다.

각 설정에 대한 자세한 내용은 git-config man 페이지에서 확인할 수 있습니다.

다시 생각해보니, 당신의 질문을 다시 읽어보니, 당신은 이 모든 것을 알고 있다고 생각합니다.당신이 실제로 찾고 있는 것은 존재하지 않는다고 생각합니다.다음과 같은 (테스트되지 않은) bash 함수는 어떻습니까?

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

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

반응형