我有一个git repo。在我在代码库中进行的每次重大更改之后,我所做的就是进入终端并执行一组命令。
git add .
git commit -m 'some message'
git push origin master
每天都是一样的,这个过程很无聊。任何人都可以建议一种方法来自动化这个过程吗?
我正在运行Linux Mint 14操作系统。
答案 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
[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)导航至触发器并修改计划时间。
现在,您可以根据需要自动执行脚本了。