【问题标题】:How can I combine these git commands?如何组合这些 git 命令?
【发布时间】:2010-12-13 03:01:14
【问题描述】:

我为 git 执行以下命令字符串,我的手指已经厌倦了输入它们。 :)

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

如何将这些(包括添加消息)组合成一个命令,例如“git booyah”之类的?

【问题讨论】:

标签: git command-line capistrano


【解决方案1】:

您可以定义一个 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"

或者,在his answerPod的建议之后:

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

(待测试)

【讨论】:

  • 小心那些双引号。当我尝试这个示例时,!f 扩展为我在 bash 历史记录中运行的最后一个“查找”命令。不过,仍然为我指明了正确的方向。
【解决方案2】:

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

我这样说:不要这样做git add . 这将添加当前目录及其后代中的所有更改和所有未跟踪的文件。您可能不希望在您的目录中添加这些未跟踪的文件,并且您会意外添加它们,尤其是当您输入 ti 的次数与您声称的一样多时。

改为git add -u。更好的是,跳过添加阶段并执行git commit -a -m"blah",这样可以节省一整行,这显然是您急于避免的事情。

【讨论】:

    【解决方案3】:

    你也可以将常用的命令组合成一行:

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

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

    【讨论】:

      【解决方案4】:

      我只是用分号组合成一个命令行:

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

      【讨论】:

        猜你喜欢
        • 2012-09-02
        • 2018-12-22
        • 2020-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2018-06-04
        • 1970-01-01
        相关资源
        最近更新 更多