我正在尝试写一个简单的shell脚本来简化git提交过程。
代替
git add . -A
git commit -m "message"
git push
我想做commit.sh "my commit message"
这是我的资料
#!/bin/bash
commit_message="$1"
git add . -A
git commit -m $commit_message
git push
这有两个问题:
1.当提交消息中包含空格时,比如“my commit message”,我会得到以下输出:error: pathspec 'commit' did not match any file(s) known to git.
error: pathspec 'message' did not match any file(s) known to git.
所以它使用的提交消息的唯一部分是“my”,而“commit message”的其他部分被忽略了。
1.我认为git add .
引用了shell脚本的位置,而不是当前的项目目录。我如何使git add .
引用我当前在终端中的位置?
6条答案
按热度按时间2cmtqfgy1#
您必须在脚本中引用变量。
我还设置了“-e”,以便在出现任何错误时,脚本将退出而不处理后续命令。
至于第二个问题,脚本中的
.
应该指向当前的工作目录,这是您想要的,但是-A
会导致它添加repo中修改过的所有文件。kiz8lqtg2#
您可以使用参数创建别名。例如:
uyto3xhc3#
我不能把变量放在句子的中间,但是你可以创建一个函数并把它放在你的.bashrc中,就像这样
并像commitpush一样使用“提交描述”分支名称
qyyhg6bp4#
去过那里,做过:Git Flow。
你也可以在git配置文件中使用create aliases,这比编写shell脚本要好得多,因为这些脚本是
git
命令本身的扩展。还有,别忘了:
这将提交您在提交时添加或编辑的所有文件。
62lalag45#
我的解决方案,仅供参考
用法
vtwuwzda6#
不久前,我有类似的想法,并与下面的文件后,做了一些谷歌搜索语法。
下面的脚本还添加了一个默认消息,以防你不关心提交消息,并读取当前分支推送。