自动化Git命令可以吗?

问题描述:

我来自FTP,如果我想快速编辑一些文本,我可以上传文件并查看更改。我知道我需要使用Git,所以我使用Bash shell编程实现了3步过程(添加,提交,推送)的自动化。这可以吗?自动化Git命令可以吗?

// in .bashrc file 
launch() { 
    git add -A . ; 
    git commit -m "$1" ; 
    git push heroku master ; 
    echo $1 ; 
} 

这绝对没问题。

自动执行SCM命令是完全正常的,事实上经常发生在持续集成中。

只是要小心。你正在使用“-A”标志,所以如果你有一个你不想要的文件,并且不会被忽略,它将被添加到提交中。

运动警惕,你会没事的。

+0

我使用.gitignore来忽略我不需要的文件。 –

一般来说,没关系。只是有一个错误需要修正:

launch() { 
    git add -A . 
    git commit -m "$1" 
    git push heroku master 
    echo "$1" 
} 

不带引号中,使用像

launch "my commit message" 

会产生一个错误,因为只有“我”将被作为参数传递给-m,用“提交“和”消息“作为独立参数出现在commit命令中。分号是不必要的,但如果保存则不会造成任何伤害。

+0

不是真的;换行符只是有效的语句终结符之一。分号仅用于终止在同一行上的另一个命令。 – chepner

从技术上讲,这是可以的,但最终可能会有很长一段小小的编辑历史,对它们没有任何评论。虽然我确实看到你的提交包含-m选项。

您可以使用此工作流程并拥有一个健全的历史记录的一种方法是将您的实时代码保存在单独的分支中。并定期进行交互式压缩小型提交的一系列更小的提交语义上接近。

然后你可以把这些更大的提交到你的主分支。