2013-10-22 5 views
25

내가 짜증나는 큰 이름이 기능을 가지 작업, 그래서 내가 그렇게처럼, 내 로컬 기능 지점에서 기능 지점까지 밀어 필요로 할 때 나는 종종 내 현재 지점 이름을 grepping 결국 :git 별칭에 파이프가 있습니까?

git branch | grep '*' | sed 's/* //' | xargs git push origin 

이를 잘 작동합니다. 나는이 별칭 만들고 싶어, 그래서에서 이런 짓을 ~/.gitconfig :

이제
[alias] 
    pushcur = branch | grep '*' | sed 's/* //' | xargs git push origin 

, 내가 git pushcur 실행할 때, 나는 다음과 같은 오류 얻을 :

usage: git branch [options] [-r | -a] [--merged | --no-merged] 

믿고 저를 선도을 별칭이 파이프를 올바르게 구문 분석하지 않습니다. 원하는 별칭을 얻기 위해 내가해야 할 일이 있습니까?

+2

일반적인 문제를 해결하는 것과 관련이 없지만 최신 버전의 git에서는'push.default' (또는'push.origin.default'를'origin'으로 제한)에서'current' ('상류'가 때때로 더 적당 할지도 모르다). [git-config] (https://www.kernel.org/pub/software/scm/git/docs/git-config.html)의 push.default 섹션을 참조하십시오. – torek

+0

bash autocompletion을 사용하여 분기 이름을 Tab으로 제거하는 것도 고려하십시오!) 기본적으로 oh-my-zsh가있는 zsh가 있습니다.) – caesarsol

답변

37

나는 당신이 할 수 있다고 생각하지 않습니다,하지만 당신은 내가 일반적으로 작은 git- 스크립트를 만들

[alias] 
    pushcur = ! git branch | grep '*' … 
+0

"하지만 Git 하위 명령 대신 외부 명령을 실행하고 싶다면! 문자를 사용하여 명령을 시작하십시오." - [git book] (https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases) – nietaki

3

새로운 쉘 명령으로 명령을 처리하는 !로 접두사와에서의 디렉토리에 넣어 수 있습니다 내 길 (~/.local/bin). 여러 좋은 예제를 보려면 git-extras을 확인하십시오.

관련 문제