2013-05-22 102 views
1

我一般使用这些命令的分支“工作”与GIT创建几个git的别名命令

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

我听说过git的别名。是否有可能通过别名或其他方式将所有这些命令组合成一个。

+1

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

回答

0

还有答案张贴在评论duplicate question,你也可以把你的PATH地方叫git-foo(例如)一个可执行的shell脚本,并访问它git foo <args>就好像它是一个本地的Git命令。

如果您的别名的逻辑是在你的配置文件中的一行太长,这非常有用。

例如:

$ 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融合了一个你目前

调用所有给出分支: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,那么编写一个shell脚本就可以做到这一点。例如:

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

,你会叫这样的:

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

然而,这种方法(或您自己的别名)很容易,如果有,失败例如,合并冲突:

$ 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 

离开你的主分支与一个未解决的合并冲突。

你也许可以添加一些逻辑到脚本检测 - 和潜在的工作轮 - 这样的问题,但是这听起来像更多的工作和努力,不只是为四个独立的命令!