1つのコマンドで git add、git commit、および git push

John Wachira 2024年2月15日
1つのコマンドで git add、git commit、および git push

この記事では、1つのコマンドでファイルをリモート リポジトリに追加、コミット、およびプッシュするために使用できる 2つの方法について説明します。 単一のファイルに小さな変更を加える場合でも、変更をリモート リポジトリに公開する 3 段階のプロセスに従う必要があります。

幸いなことに、変更をリモート リポジトリに追加、コミット、およびプッシュするコマンドを作成できます。

1つのコマンドで git add、git commit、および git push

これには 2つの方法があります。

  1. bash 関数を作成します。
  2. エイリアスを作成します。

Bash 関数を作成する

ローカルの変更をリモート リポジトリに追加、コミット、およびプッシュする Bash 関数を作成できます。 この関数は、.bashrc ファイルに保存する必要があります。

.bashrc ファイルは、端末のセッションの構成を定義する単なるシェル スクリプトです。

このファイルは通常、ホーム ディレクトリにあります。 ホーム ディレクトリは、Git Bash を起動したときに立っているディレクトリです。

.bashrc ファイルがない場合は、Bash を起動し、以下のコマンドを使用して作成します。

$ touch ~/.bashrc

.gitconfig ファイルと同様に、.bashrc は隠しファイルです。 以下のコマンドを実行して、関数を .bashrc ファイルに追加します。

$ notepad ~/.bashrc

このコマンドはメモ帳でファイルを開き、以下に示す関数を追加できます。

function acp() {
    git add .
    git commit -m "$1"
    git push origin HEAD
}

git commit"$1" により、acp コマンドの実行時にカスタム コミット メッセージを指定できます。

関数には任意の名前を付けることができます。 ファイルを保存し、以下のコマンドを実行して機能を有効にします。

$ source ~/.bashrc

新しい Git バージョンは --login で始まることに注意してください。 このような場合、Git は bash_profile ファイルのみを読み取ります。

このため、Git は .bashrc ファイルを認識しません。 これを修正するには、以下のコマンドを実行します。

$ if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

Git が .bashrc ファイルを読み取るようになりました。 以下に示すように、acp を使用して、リモートへの変更の追加、コミット、およびプッシュを 1つのコマンドで使用できます。

$ acp "Update README.md"

これにより、変更が追加され、コミットされ、リモートにプッシュされます。

1つのコマンドでコミットとプッシュを追加

注: 関数に割り当てた名前を使用してください。 たとえば、関数に Lazygit という名前を付けた場合、次のように実行します。

$ Lazygit "Update README.md"

エイリアスを作成する

以下に示すように、変更をリモート リポジトリに追加、コミット、およびプッシュするエイリアスを作成できます。

$ git config --global alias.lazygit '!f() { git add -A && git commit -m "$@" && git push origin HEAD; }; f'

エイリアスには任意の名前を付けることができます。 git commit"$@" を使用すると、コマンド ラインでエイリアスを使用するときにカスタム コミット メッセージをフィードできることに注意してください。

エイリアスを lazygit と名付けたので、以下を実行します。

$ git lazygit "Update LICENSE.md"

エイリアスを使用して 1つのコマンドでコミットとプッシュを追加

.bashrc ファイルに Bash 関数を作成するか、エイリアスを作成することで、1つのコマンドで追加、コミット、プッシュすることができます。 カスタム コミット メッセージを追加するオプションを使用して、両方を作成する方法を見てきました。

著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

関連記事 - Git Add

関連記事 - Git Push

関連記事 - Git Commit