如何自动化“提交和推送”流程? (GIT)

时间:2013-05-23 08:46:54

标签: git

我有一个git repo。在我在代码库中进行的每次重大更改之后,我所做的就是进入终端并执行一组命令。

git add .
git commit -m 'some message'
git push origin master

每天都是一样的,这个过程很无聊。任何人都可以建议一种方法来自动化这个过程吗?

我正在运行Linux Mint 14操作系统。

6 个答案:

答案 0 :(得分:15)

您可以使用Bash脚本轻松自动执行此操作。

git add .

echo 'Enter the commit message:'
read commitMessage

git commit -m "$commitMessage"

echo 'Enter the name of the branch:'
read branch

git push origin $branch

read

将上述代码存储为.sh文件(例如gitpush.sh

由于您必须将此sh文件设为可执行文件,因此您需要在终端中运行以下命令:

chmod +x gitpush.sh

现在运行此.sh文件。

每次运行它时,它会询问您提交消息和分支的名称。如果分支不存在或未定义推送目标,则git将生成错误。要阅读此错误,我已添加了最后一个read语句。如果没有错误,那么git会生成pushed successfully类型的消息。

答案 1 :(得分:10)

这不是很多要打字的事情,但是通过使用别名可以简化这个过程。

修改$HOME/.gitconfig以添加一些快捷方式,例如要使用git p作为git push origin master的别名,请使用:

[alias]
        p = push origin master

如果您使用像bash这样的下降外壳,则可以使用历史记录功能。您需要知道的一切都在bash的手册页中。

详细了解别名here

另一方面,git add .可能不是最佳方法,因为它将文件夹中的每个文件添加到暂存区域。最好使用git add -u仅添加索引中已有的文件。

答案 2 :(得分:9)

每天承诺工作一次,因为大块不能有效地使用版本控制。制作反映代码库开发步骤(或存储库中正在跟踪的其他内容)的小型,常规,原子提交要好得多。

使用shell脚本可能有些过分 - 大多数人使用别名来自动执行git命令,无论是shell别名还是git别名。

在我的情况下,我使用shell别名 - 其中一些是:

alias gp='git push'
alias gc='git commit'
alias gca='git commit -a'
alias gcm='git commit -m'
alias gcam='git commit -am'

所以对我来说你要问的是:

gcam "My commit message";gp

这不是很多打字而且很难玩,我这样做和类似的git操作每天几十次(我知道 - 因为我检查我的shell历史)。

使用小别名而不是脚本的原因是我可以灵活地使用不同的提交方式。如果我使用脚本,我会失去这种灵活性。

答案 3 :(得分:5)

您可以在$HOME/.gitconfig.git/config

中一起使用别名和shell功能
[alias]
        newalias = "!f(){ git add . && git commit -m \"$1\"; git push origin master; };f"

并将其命名为

$ git newalias "message ..."

答案 4 :(得分:1)

对于我的工作流程,git"添加"和git"提交"是目标和原子的,所以将它们分成单个批量命令是没有用的。但是,每天,我都会在许多不同的存储库中推送到许多不同的分支,这通常遵循" git push origin {branchname}"的模式。 可以在shell脚本中自动化:

/\/\*\*\s*\n([^\*]|(\*(?!\/)))*\*\//

然后你可以添加一个bash别名(例如" git-push")来调用这个脚本,这将有效地运行" git push origin {当前检出分支}"在您所在的任何存储库中。

答案 5 :(得分:0)

Windows的最佳解决方案: 1)在您系统上的任何地方创建一个文本文件,并根据需要更改字段后将以下代码插入其中

git add .

git commit -m "commitMessage"

git push url master

exit

2)保存并退出文件。

3)将文件名更改为push.sh

4)使用git powershell导航到系统上的文件目录,然后使用以下命令chmod +x push.sh使文件可运行。

5)单击Windows启动,然后搜索Task Scheduler,然后按创建新任务。

6)单击操作,然后按OK浏览到您的push.sh文件。

7)导航至触发器并修改计划时间。

现在,您可以根据需要自动执行脚本了。