如何组合这些git命令?

Shp*_*ord 3 git command-line capistrano

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

git add .
git commit -m 'Some message'
git push
cap deploy
Run Code Online (Sandbox Code Playgroud)

如何将这些(包括添加消息)组合成一个命令,如"git booyah"或其他什么?

Von*_*onC 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"
Run Code Online (Sandbox Code Playgroud)

或者,的建议后,波德他的回答:

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

(待测试)

  • 小心那些双引号.当我尝试这个例子时,!f扩展到我在bash历史记录中运行的最后一个'find'命令.不过,我仍然指出了正确的方向. (2认同)

Che*_*ana 6

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

$ git add . | git commit -m 'Some message' | git push | cap deploy
Run Code Online (Sandbox Code Playgroud)

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


Pod*_*Pod 5

这不是您问题的答案(我的答案是:制作 bash/批处理脚本)。

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

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


Mic*_*ens 5

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

git add .; git commit -m "Some message"; git push; cap deploy
Run Code Online (Sandbox Code Playgroud)