如何组合这些git命令?

时间:2009-11-04 17:40:07

标签: git command-line capistrano

我为git做了以下一系列命令,我的手指已经厌倦了输入它们。 :)

git add .
git commit -m 'Some message'
git push
cap deploy

如何将这些(包括添加消息)合并到一个命令中,例如“git booyah”或其他什么?

4 个答案:

答案 0 :(得分:7)

您可以定义git alias调用脚本

  

从版本1.5.0开始,Git支持执行非git命令的别名,方法是在值前加"!"
  从版本1.5.3开始,git支持将参数附加到前缀为“!”的命令。

在别名中定义一个函数,可以避免显式调用“sh -c

[alias]
        publish = "!f() { git add . ; git commit -m \"$1\" ; git push ; cap deploy ; }; f"

或在Podhis answer的建议之后:

[alias]
        publish = "!f() { git commit -a -m \"$1\" ; git push ; cap deploy ; }; f"

(待测试)

答案 1 :(得分:4)

这不是你问题的答案(我的答案是:制作一个bash / batch脚本)。

我这样说:不要git add .这将在当前目录中添加每个更改和所有未跟踪的文件及其后代。您可能不希望这些未跟踪的文件存在于您的目录中,并且您会意外添加这些文件,特别是如果您按照您声称的那样输入ti。

取而代之的是git add -u。更好的是,跳过添加阶段并执行git commit -a -m"blah",这可以为您节省一整行,这显然是您希望避免的。

答案 2 :(得分:2)

您还可以将常用命令组合在一行中:

$ git add . | git commit -m 'Some message' | git push | cap deploy

下次您只需要向上箭头将其取回,然后按 Enter

答案 3 :(得分:2)

我只是使用分号将它们组合成一个命令行:

git add .; git commit -m "Some message"; git push; cap deploy