2013-05-22 6 views
1

내가 일반적으로 내가 자식 별칭에 대해 들어 본 적이 자식여러 자식에 대한 별칭을 만들기

git commit -a -m "blah! blah!" 
git checkout master 
git merge work 
git checkout work 

로 지점 '작업'에 이러한 명령을 사용하여 명령. 별칭 또는 다른 것을 통해 이러한 모든 명령을 하나로 결합 할 수 있습니까? 네이티브 망할 놈의 명령 인 것처럼

+1

http://stackoverflow.com/q/7534184/1615903 – 1615903

답변

0

뿐만 아니라 코멘트에 게시 된 duplicate question에 대한 답변은 또한 git foo <args>으로 실행 쉘 어딘가에 PATH에서 (예를 들어) git-foo 호출 된 스크립트 액세스를 넣을 수 있습니다.

별칭에 대한 논리가 구성 파일의 한 줄에 너무 길면 유용 할 수 있습니다.

GMM 당신이

호출에 현재있는 한 모든 주어진 가지를 병합 :

$ cat > ~/bin/git-foo 
#!/bin/bash 
echo "Foo: $1" 
^C 
$ chmod +x ~/bin/git-foo 
$ git foo test 
Foo: test 
+0

죄송합니다, 저는 Windows 사용자이며 git 신규입니다. 너의 예가하고있는 일을 나에게 말해 줄 수 있니? –

0

당신은 또한 당신의 shell.rc 파일에 다음을 추가 할 수 있습니다 : 예를 들어

GMM 병합 할 분기 1 통합 할 분기 2 ...

gmm() { 
     src=`git branch --no-color | grep "*" | cut -f 2` 
     for i in [email protected] 
     do 
       git checkout $i 
       git merge $src 
     done 
     git checkout $src 
} 
0

As @ Will-Vousden sug gests, 이렇게하려면 쉘 스크립트를 작성할 수 있습니다. 예를 들어 :

:이 경우

$ git-commit.sh "Commit message in quotes" 

그러나이 방법 (또는 고유의 별명)이 쉽게 예를 들어, 병합 충돌을 실패 할 수 있습니다 :

#!/bin/bash 
git commit -a -m "$1" 
git checkout master 
git merge work 
git checkout work 

은 당신처럼 부를 것

$ git-commit.sh "Commit message in quotes" 
[work 1a6e17f] Commit message in quotes 
1 file changed, 1 insertion(+), 1 deletion(-) 
Switched to branch 'master' 
Auto-merging file.txt 
CONFLICT (content): Merge conflict in file.txt 
Automatic merge failed; fix conflicts and then commit the result. 
file.txt: needs merge 
error: you need to resolve your current index first 

미해결 된 병합 충돌로 마스터 브랜치에서 나가게됩니다.

아마도 일부 논리를 스크립트에 추가하여 이러한 문제를 탐지하고 잠재적으로 작동시킬 수는 있지만 네 개의 별도 명령을 실행하는 것보다 훨씬 많은 노력과 노력이들 것입니다.

관련 문제