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

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

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


当前回答

我使用批处理文件:

@ECHO OFF
SET /p comment=Comment:
git add *
git commit -a -m "%comment%"
git push

其他回答

在bash中设置为别名:

$ alias lazygit="git add .; git commit -a -m '...'; git push;";

叫它:

$ lazygit

(要使这个别名永久存在,你必须将它包含在你的.bashrc或.bash_profile中)

在lazygit答案的基础上,下面的解决方案添加了一个用户检查,以在推送之前验证更改。如果取消,它将恢复命令。当且仅当本地回购发生变化时,所有这些都会发生。

### SAFER LAZY GIT
function lazygit() {
  git add .
  if git commit -a -m "$1"; then
    read -r -p "Are you sure you want to push these changes? [y/N]} " response
    case "$response" in
      [yY][eE][sS]|[yY])
        git push
        ;;
      *)
        git reset HEAD~1 --soft
        echo "Reverted changes."
        ;;
    esac
  fi
}

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

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

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

这允许我运行:

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

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

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

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

基于@Gavin的回答:

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

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

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

lazygit "My commit msg"

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

编写一个名为gitpush.sh的小脚本,并将其添加到~目录中。

echo $1
git add .
git commit -m "$1"
git push

现在在~/中添加一个别名。Bashrc如下:

alias gitpush='~/gitpush'

现在从任何git存储库只写gitpush "message"。