有什么方法可以同时使用这三个命令吗?

git add .
git commit -a -m "commit" (do not need commit message either)
git push

有时我只改变一个字母,CSS填充之类的。不过,我必须编写所有三个命令来推动更改。有许多项目,我只是一个推动者,所以这个命令将是了不起的!


当前回答

这非常适合命令分组。

分组命令

{列表;} 将命令列表放在花括号之间会导致该列表在当前shell上下文中执行。没有创建子shell。列表后面必须有分号(或换行符)。

legit(){ git add --all; git commit -m "$1"; git push origin master; }
legit 'your commit message here'

其他回答

基于@Gavin的回答:

将lazygit作为一个函数而不是一个别名,这样就可以给它传递一个参数。我已经在我的.bashrc(或.bash_profile如果Mac)中添加了以下内容:

function lazygit() {
    git add .
    git commit -a -m "$1"
    git push
}

这允许您提供一个提交消息,例如

lazygit "My commit msg"

当然,您还可以通过接受更多的参数来进一步增强这一点,比如要推到哪个远程位置,或者哪个分支。

我认为你可能误解了git设计的工作流程。(为了澄清/纠正我在评论中的意思,你不需要git add .,因为commit -a通常具有相同的目的-如果文件已经添加,则添加任何尚未登台的更改)

通常你会这样做:

# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"

清洗,冲洗,重复,直到你完成了功能X,或者你在一个停止点,或者你只是想让其他人看到你所做的。然后你做了

$ git push

Git不是SVN——但似乎您正试图将它作为SVN来使用。您可能会在本文末尾找到一些有用的参考资料。

在Linux/Mac中,这个非常实用的选项也可以工作

git commit -am "IssueNumberIAmWorkingOn --hit Enter key
> A detail here --Enter
> Another detail here --Enter
> Third line here" && git push --last Enter and it will be there

如果你正在处理一个本地创建的新分支,使用git push -u origin branch_name来更改git push片段

如果你想在系统编辑器中编辑你的提交信息,那么

git commit -a && git push 

将打开编辑器,一旦你保存消息,它也会推送它。

已经有很多好的解决方案了,但下面这个解决方案更适合我想要的工作方式:

我在路径中放置了一个名为“git-put”的脚本,其中包含:

#!/bin/bash
git commit "$@" && git push -u

这允许我运行:

Git put -am“我的提交信息”

..要添加所有文件,提交并推送它们。

(我还添加了“-u”,因为我喜欢这样做,即使它与这个问题无关。确保上游分支始终处于可拉状态。)

我喜欢这种方法,因为它还允许在不添加所有文件的情况下使用“git put”(跳过“-a”),或者使用我可能想要传递给提交的任何其他选项。另外,put是push和commit的合成词

我喜欢运行以下程序:

git commit -am "message";git push