HOWTO · Git

1つのコマンドで Git Add と Git Commit

git add と git commit を 1つのコマンドに組み合わせるさまざまな方法。

このページの内容

この記事では、git add コマンドと git commit コマンドをコマンド ラインで 1つに結合する方法について説明します。 2つのコマンドを 1つのコマンドに結合すると、時間を節約できます。

2つのコマンドを組み合わせるときは、何をコミットしたいかを覚えておく必要があります。 いくつかの一般的なシナリオを見てみましょう。

1つのコマンドで Git Add と Git Commit

Git のバージョン管理に精通している場合は、作業スペースにさまざまなカテゴリのファイルがあることをご存知でしょう。 これらは:

  1. 変更されたファイル
  2. 削除されたファイル
  3. 追跡されていないファイル

ここに例があります。

git working space

変更されたファイルと削除されたファイルのみをコミットしたい場合、1つのコマンドで追加とコミットを行うにはどうすればよいでしょうか?

以下のコマンドを実行して、変更されたファイルを追加し、削除されたファイルをコミットできます。

$ git commit -am "Shortcut"

理想的には、上記のコマンドはファイルをコミット用にステージングし、自動的にコミットします。

追跡されていないファイルはそのままにしておく必要があります。 私たちのケースを確認しましょう。

git add and commit

別の例を見てみましょう。

作業スペース 2

追跡されていないファイルを含むすべてのファイルを作業スペースに追加してコミットしたい場合はどうすればよいでしょうか?

インデックスにすべてのファイルを追加するには、-A フラグを指定して git add コマンドを使用します。 git エイリアス を作成することで、このコマンドを git commit コマンドと組み合わせることができます。

エイリアスを使用すると、カスタム コミット メッセージを提供しながら、2つのコマンドを 1つにまとめることができます。 Git でエイリアスを作成する方法は次のとおりです。

$ git config --global alias.combo-AC '!git add -A && git commit'

エイリアスには任意の名前を付けることができます。 私たちの場合、それを combo-AC と呼んでいます。

これがその使用法の図です。

$ git combo-AC -m "Shortcut2"

このコマンドは、すべてを作業スペースに追加してコミットする必要があります。 私たちのケースを確認しましょう。

git add and commit alias

または、作業スペースにすべてのファイルを追加してコミットする関数を作成できます。 これを行うには、.bashrc ファイルに関数を追加する必要があります。

.bashrc ファイルは、ターミナル セッションの機能を指示するシェル スクリプトです。

このファイルは非表示で、ホーム ディレクトリにあります。 これは通常、Git Bash を起動したときの最初のディレクトリです。

関数を .bashrc ファイルに追加するには、次を実行します。

$ notepad ~/.bashrc

これにより、メモ帳でファイルが開き、以下に示すように関数を追加できます。

function ac() {
	git add -A
	git commit -m "$1"
}

ファイルを保存し、メモ帳を終了します。 Git Bash で、以下のコマンドを実行して機能を有効にします。

$ source ~/.bashrc

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

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

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

上記のコマンドは、プロジェクトのルート フォルダーで実行してください。 関数の使用例を次に示します。

$ ac "New"

これにより、インデックスにすべてのファイルが追加され、コミットされます。

関数 ac

簡単に言うと、git addgit commit コマンドを 1つにまとめるときは、何をコミットするかを考えます。

削除されたファイルと変更されたファイルのみをコミットしたい場合に、この 2つを組み合わせる方法について説明しました。 また、1つのコマンドですべてのファイルを追加してコミットする 2つの方法についても説明しました。