これは、Ubuntuオンライン、Fedoraオンライン、Windowsオンラインエミュレータ、MAC OSオンラインエミュレータなど、複数の無料オンラインワークステーションのいずれかを使用して、OnWorks無料ホスティングプロバイダーで実行できるgit-commitコマンドです。
プログラム:
NAME
git-commit - リポジトリへの変更を記録する
SYNOPSIS
git コミット [-a | --interactive | --patch] [-s] [-v] [-u ] [ - 修正する]
[--dry-run] [(-c | -C | --fixup | --squash) ]
[-F | -m ] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author= ]
[--date= ] [--クリーンアップ= ] [--[no-]ステータス]
[-i | -o] [-S[ ]] [--] [ ...]
DESCRIPTION
インデックスの現在の内容を、ログメッセージとともに新しいコミットに保存します。
ユーザーが変更を説明します。
追加するコンテンツは、いくつかの方法で指定できます。
1. 使用して git 加えます 使用する前にインデックスに段階的に変更を「追加」する コミット
コマンド (注: 変更されたファイルであっても「追加」する必要があります);
2. 使用して git rm 作業ツリーとインデックスからファイルを削除するには、
コミット 指図;
3. 引数としてファイルをリストすることで コミット コマンドを実行すると、コミットは
インデックスにステージングされた変更を無視し、代わりに現在のコンテンツを記録する。
リストされたファイル(Git にすでに認識されている必要があります)
4. -aスイッチを使用して コミット すべての変更を自動的に「追加」するコマンド
既知のファイル(つまり、インデックスに既にリストされているすべてのファイル)を自動的に
作業ツリーから削除されたインデックス内のファイルを「rm」し、
実際のコミット。
5. --interactive または --patch スイッチを コミット 1つを決めるコマンド
コミットを確定する前に、どのファイルまたはハンクをコミットに含めるかを決定します。
操作。「インタラクティブモード」セクションを参照してください。 git-追加(1)操作方法を学ぶ
これらのモード。
--dry-run オプションを使用すると、以下のいずれかのコマンドで実行される内容の概要を取得できます。
次回のコミットでは、同じパラメータセット (オプションとパス) を指定して上記を実行します。
コミットした直後に間違いを見つけた場合は、
それで git リセット.
OPTIONS
-a、-all
変更されて削除されたファイルを自動的にステージングするようにコマンドに指示しますが、
Git に通知していない新しいファイルは影響を受けません。
-p、--パッチ
インタラクティブなパッチ選択インターフェースを使用して、コミットする変更を選択します。
git-追加詳細は(1)。
-C 、 --reuse-message=
既存のコミットオブジェクトを取得し、ログメッセージと作成者を再利用します
コミットを作成するときの情報 (タイムスタンプを含む)。
-c 、 --reedit-message=
いいね -Cしかし、と -c エディタが起動され、ユーザーはさらに編集できるようになります。
コミットメッセージ。
--fixup=
rebase --autosquashで使用するコミットメッセージを作成します。コミットメッセージは
指定されたコミットの件名に「fixup!」というプレフィックスを付けたものになります。 ギット-
リベース詳細は(1)。
--スカッシュ=
rebase --autosquashで使用するコミットメッセージを作成します。コミットメッセージは
件名は指定されたコミットから取得され、プレフィックスは「squash!」になります。
追加のコミットメッセージオプション(-m/-c/-C/-F)と組み合わせて使用します。 git-リベース(1)
詳細。
--reset-author
-C/-c/--amendオプションと一緒に使用する場合、または競合が発生した後にコミットする場合
チェリーピックでは、結果として得られるコミットの著作権が、
コミッター。これにより、作成者のタイムスタンプも更新されます。
- 短い
ドライランを行う際は、出力を短い形式で出力してください。 git ステータス(1)
詳細。--dry-run を意味します。
- ブランチ
短い形式でもブランチと追跡情報を表示します。
- 磁器
予行演習を行う際は、出力を磁器印刷可能な形式で提供してください。 git ステータス(1)
詳細については、 --dry-run を参照してください。
- 長さ
ドライランを実行する場合は、出力を長い形式で指定します。--dry-run を指定します。
-z、--null
短いステータス出力や磁器のようなステータス出力を表示する場合は、ステータス出力のエントリを終了します。
LFではなくNULを使用します。フォーマットが指定されていない場合は、--porcelain出力フォーマットが使用されます。
-F 、 --file=
指定されたファイルからコミットメッセージを取得します。 - メッセージを読む
標準入力。
--著者=
コミット作者を上書きします。標準のAU Thorを使用して明示的に作者を指定します。
<[メール保護]> フォーマット。それ以外の場合パターンであると想定され、使用される
その作者による既存のコミットを検索する(つまり rev-list --all -i
--著者= ); コミットの作成者は、最初に見つかったコミットからコピーされます。
--日付=
コミットで使用される作成者の日付を上書きします。
-m 、 --メッセージ=
与えられたものを使用するコミットメッセージとして表示されます。複数の-mオプションが指定された場合、
値は個別の段落として連結されます。
-t 、 --template=
コミット メッセージを編集するときは、指定されたファイルの内容でエディターを起動します。
commit.template設定変数は、このオプションを与えるためによく使用されます。
コマンドに暗黙的に適用される。このメカニズムは、ガイドしたいプロジェクトで使用できる。
参加者に、メッセージに何をどのような順番で書くべきかのヒントを与えます。
ユーザーがメッセージを編集せずにエディタを終了すると、コミットは中止されます。これは
-m または -F オプションなど、他の手段でメッセージが与えられた場合に効果があります。
-s、--サインオフ
コミットログメッセージの最後にコミッターによるSigned-off-by行を追加します。
サインオフの意味はプロジェクトによって異なりますが、通常はコミッターが
同じライセンスの下でこの作品を提出する権利を持ち、開発者の同意を得る。
原産地証明書(参照 http://developercertificate.org/ )詳細については、のために。
-n, --no-verify
このオプションはpre-commitフックとcommit-msgフックをバイパスします。 githookとします。
--allow-empty
通常、唯一の親コミットと全く同じツリーを持つコミットを記録することは、
間違いを犯し、コマンドはそのようなコミットを阻止します。このオプションは
安全性を重視しており、主に外部の SCM インターフェース スクリプトで使用されます。
--allow-空のメッセージ
--allow-empty と同様に、このコマンドは主に外部の SCM インターフェース スクリプトによって使用されます。
配管を使わずに空のコミットメッセージを持つコミットを作成できる
のようなコマンド git コミット ツリーとします。
--クリーンアップ=
このオプションは、提供されたコミットメッセージをどのようにクリーンアップするかを決定します。
コミットする。 ストリップ、ホワイトスペース、逐語的、はさみ、またはデフォルトを指定できます。
ストリップ
先頭と末尾の空行、末尾の空白、コメント、
連続する空行を折りたたみます。
空白
#commentary が削除されない点を除いて strip と同じです。
逐語的
メッセージはまったく変更しないでください。
はさみ
空白と同じですが、行「#」以降のすべては空白です。
------------------------ >8 ------------------------"は、メッセージが
編集対象です。「#」はcore.commentCharでカスタマイズできます。
デフォルト
メッセージを編集する場合は strip と同じです。それ以外の場合は空白文字になります。
デフォルトは、 コミット.クリーンアップ 構成変数 (「 ギット-
設定(1))。
-e、--edit
-Fでファイルから取得されたメッセージ、-mでコマンドラインから取得されたメッセージ、およびコミットオブジェクトから取得されたメッセージ
-Cは通常、コミットログメッセージとして使用されます。このオプションを使用すると、さらに
これらのソースから取得したメッセージを編集します。
--編集なし
エディタを起動せずに、選択したコミットメッセージを使用します。例:git commit
--amend --no-edit はコミット メッセージを変更せずにコミットを修正します。
--修正
新しいコミットを作成して、現在のブランチの先端を置き換えます。記録されたツリーは
通常通りに準備されます(-iおよび-oオプションの効果と明示的な
パススペック)で、元のコミットからのメッセージが開始点として使用されます。
コマンドラインから他のメッセージが指定されていない場合は、空のメッセージの代わりに
-m、-F、-cなどのオプションを介して。新しいコミットは、
現在のもの (--reset-author オプションでこれを無効にできます)。
これは、おおよそ次のものと同等です。
$ git restart --soft HEAD^
$ ... 正しいツリーを見つけるために何か他のことをしてください...
$ git コミット -c ORIG_HEAD
ただし、マージコミットを修正するために使用できます。
コミットを修正する場合、履歴を書き換えることの影響を理解しておく必要があります。
すでに公開されています。(「アップストリームリベースからの回復」セクションを参照してください。 ギット-
リベース(1)。)
--ポスト書き換えなし
書き換え後のフックをバイパスします。
-i、-include
ステージングした内容をコミットする前に、パスの内容をステージングします。
コマンドラインでも指定できます。これは通常、
競合したマージを終了します。
-o, --only
指定されたパスの更新された作業ツリーの内容を取得してコミットします。
他のパスにステージングされたコンテンツを無視して、コマンドラインを実行します。
これは、 git コミット パスが指定されている場合は
コマンドラインの場合は、このオプションは省略できます。このオプションが指定されている場合は
とともに --修正パスを指定する必要がなくなり、修正に使用できます。
すでにステージングされた変更をコミットせずに最後のコミットを実行します。
-u [ ]、-untracked-files [= ]
追跡されていないファイルを表示します。
モードパラメータはオプションです(デフォルトは を)であり、処理を指定するために使用されます
追跡されていないファイルの数。-u が使用されていない場合、デフォルトは 通常の、つまり追跡されていないものを表示
ファイルとディレクトリ。
可能なオプションは次のとおりです。
· いいえ - 追跡されていないファイルを表示しない
· 通常の - 追跡されていないファイルとディレクトリを表示します
· を -追跡されていないディレクトリ内の個々のファイルも表示します。
デフォルトは、status.showUntrackedFiles構成を使用して変更できます。
で文書化された変数 git-configとします。
-v、-verbose
HEADコミットと最後にコミットされる内容の統合された差分を表示します。
コミットメッセージテンプレートは、ユーザーがコミットを説明する際に、
コミットの変更点。このdiff出力には行の先頭に
#この diff はコミット メッセージの一部にはなりません。
2回指定した場合は、コミットされる内容の統合された差分も表示します。
およびワークツリー ファイル (つまり、追跡されたファイルへのステージングされていない変更)。
-q、-quiet
コミット サマリー メッセージを抑制します。
-ドライラン
コミットを作成せず、コミットされるパスのリストを表示します。
コミットされないローカルの変更と追跡されないパス。
- 状態
出力を含める git ステータス(1)コミットメッセージテンプレートで
コミットメッセージを準備するためのエディタ。デフォルトではオンになっていますが、上書きすることもできます。
設定変数 commit.status。
- ステタスはありません
出力は含めないでください git ステータス(1)コミットメッセージテンプレートで
デフォルトのコミットメッセージを準備するためのエディター。
-S[ ]、--gpg-sign[= 】
GPG 署名コミット。 keyid 引数はオプションであり、デフォルトはコミッタです。
身元; 指定する場合は、スペースを入れずにオプションに固定する必要があります。
--gpg サインなし
強制的に各項目を強制するように設定されたcommit.gpgSign設定変数をキャンセルする
署名することを約束します。
--
それ以上の引数をオプションとして解釈しないでください。
..。
コマンドラインでファイルを指定すると、コマンドはファイルの内容をコミットします。
すでにステージングされた変更は記録されずに、名前付きファイルが作成されます。これらのファイルの内容は
以前にステージングされたものに加えて、次のコミットのためにステージングされます。
DATE 書式
GIT_AUTHOR_DATE、GIT_COMMITTER_DATE環境変数と--dateオプション
次の日付形式をサポートします:
Gitの内部形式
それは、 どこの数です
UNIX エポックからの秒数。 正または負のオフセットです
UTCから。 たとえば、CET (協定世界時より 2 時間進んでいます) は +0200 です。
RFC 2822
RFC 2822 で説明されている標準電子メール形式 (例: Thu, 07 Apr 2005)
22:13:13 +0200。
ISO 8601
ISO 8601 標準で指定された日時 (例: 2005-04-07T22:13:13)。 の
パーサーは、T 文字の代わりにスペースも受け入れます。
注意
さらに、日付部分は次の形式で受け入れられます: YYYY.MM.DD、
YYYY/MM/DD および DD.MM.YYYY。
例
自分の作業を記録する場合、作業ツリー内の変更されたファイルの内容は
「インデックス」と呼ばれるステージングエリアに一時的に保存され、 git 加えますファイルは
最後のコミットの状態に、インデックスのみで戻され、作業ツリーでは戻されない
git reset HEAD で -- 、これは事実上 git 加えます そして変化を防ぐ
このファイルへの次のコミットへの参加を禁止します。
これらのコマンドで増分コミットする、git commit (パス名パラメータなし)
これまでにステージングされた内容を記録するために使用されます。これはコマンドの最も基本的な形式です。
例:
$ hello.c を編集する
$ git rm goodbye.c
$ git で hello.c を追加します
$ gitコミット
個々の変更ごとにファイルをステージングする代わりに、git commitに通知するように指示することができます。
作業ツリーで追跡されているファイルへの変更は、
対応するgit addとgit rmを実行します。つまり、この例は
作業ツリーに他の変更がない場合の前の例:
$ hello.c を編集する
$ rm さようなら.c
$ git commit -a
git commit -aコマンドはまず作業ツリーを見て、変更があったことを知らせます。
hello.c を削除し、goodbye.c を削除し、必要な git add と git rm を実行します。
多数のファイルの変更をステージングした後、変更が記録される順序を変更できます。
git commitにパス名を与えることによって。パス名が与えられると、コマンドはコミットを作成する。
名前付きパスに加えられた変更のみを記録します。
$ hello.c hello.h を編集
$ git で hello.c と hello.h を追加します
$ Makefileを編集する
$ git コミット メイクファイル
これにより、Makefileへの変更を記録するコミットが作成されます。ステージングされた変更は
hello.cとhello.hはコミットには含まれません。ただし、それらの変更は
失われたわけではなく、まだ準備段階であり、単に控えられているだけです。上記のシーケンスの後、
行う:
$ gitコミット
この 2 番目のコミットでは、hello.c と hello.h への変更が期待どおりに記録されます。
マージ後( git マージ or git プル)競合により停止するが、
マージされたパスはすでにコミットされるよう準備されており、競合したパスは
マージされていない状態のままです。まず、どのパスが競合しているかを確認する必要があります。 git
status そして、作業ツリーで手動で修正した後、結果を次のようにステージングします。
いつもの git 加えます:
$ git ステータス | grep マージされていない
マージされていない: hello.c
$ hello.c を編集する
$ git で hello.c を追加します
競合を解決し、結果をステージングした後、git ls-files -u は言及しなくなります。
競合したパスを修正します。完了したら、git commit を実行してマージを記録します。
$ gitコミット
自分自身の変更を記録する場合と同様に、-aオプションを使用して入力を省略できます。
違いは、マージ解決中にgit commitをパス名とともに使用できないことです。
変更がコミットされる順序を変更してください。マージは次のように記録される必要があるためです。
単一のコミット。実際、パス名が指定されるとコマンドは実行を拒否します(ただし、-i
オプション)。
考察
必須ではありませんが、コミットメッセージは1つの短い
変更内容を要約した50行(XNUMX文字未満)の後に空白行が続き、
より詳細な説明。コミットメッセージの最初の空白行までのテキストは
コミットタイトルとして扱われ、そのタイトルはGit全体で使用されます。例えば、 ギット-
フォーマットパッチ(1)コミットをメールに変換し、件名にタイトルを使用し、
コミットの残りの部分は本体に記述します。
Git はある程度、文字エンコーディングに依存しません。
· BLOB オブジェクトの内容は、解釈されていないバイトのシーケンスです。 ありません
コアレベルでのエンコード変換。
· パス名は UTF-8 正規化形式 C でエンコードされます。これはツリー オブジェクトに適用されます。
インデックス ファイル、参照名、コマンド ライン引数のパス名、
環境変数と構成ファイル (.git/config (を参照) git-config(1))、 ギグノーレ(5)
git属性(5)と gitモジュール(5))。
Git はコア レベルでパス名を単に非 NUL のシーケンスとして扱うことに注意してください。
バイトの場合、パス名のエンコード変換はありません (Mac と Windows を除く)。
したがって、非 ASCII パス名を使用すると、プラットフォームやファイルでもほとんど機能します。
従来の拡張 ASCII エンコーディングを使用するシステム。 ただし、作成されたリポジトリは、
このようなシステムは、UTF-8 ベースのシステム (Linux、Mac、Windows など) では正しく動作しません。
およびその逆。 さらに、多くの Git ベースのツールは、単にパス名が次であると想定しています。
UTF-8 では、他のエンコーディングを正しく表示できません。
· コミット ログ メッセージは通常 UTF-8 でエンコードされますが、他の拡張 ASCII エンコードも使用できます。
もサポートされています。 これには ISO-8859-x、CP125x、その他多くのものが含まれますが、
UTF-16/32、EBCDIC および CJK マルチバイト エンコーディング (GBK、Shift-JIS、Big5、EUC-x、CP9xx)
など)。
コミット ログ メッセージは UTF-8 でエンコードすることをお勧めしますが、コアと
Git Porcelain は、プロジェクトに UTF-8 を強制しないように設計されています。 参加者全員が
特定のプロジェクトではレガシー エンコーディングを使用する方が便利であると考えられますが、Git はそれを禁止していません
それ。 ただし、留意すべき点がいくつかあります。
1. git コミット git コミットツリー コミットログメッセージが与えられた場合に警告を発行します
プロジェクトが
レガシーエンコーディング。 これを行う方法は、.git/config に i18n.commitencoding を含めることです。
次のようなファイル:
[i18n]
コミットエンコーディング = ISO-8859-1
上記の設定で作成されたコミットオブジェクトには、i18n.commitencoding の値が記録されます。
エンコードヘッダーにあります。 これは、後で見る他の人を助けるためです。 の欠如
このヘッダーは、コミット ログ メッセージが UTF-8 でエンコードされていることを意味します。
2. git ログ, git 表示する, git 非難 そして友人はコミットのエンコーディングヘッダーを確認します
オブジェクトを削除し、特に指定がない限り、ログ メッセージを UTF-8 に再コード化してみます。 あなた
.git/config の i18n.logoutputencoding で目的の出力エンコーディングを指定できます
次のようなファイル:
[i18n]
logoutputencoding = ISO-8859-1
この構成変数がない場合、i18n.commitencoding の値は次のようになります。
代わりに使用されます。
コミット時にコミット ログ メッセージを再コーディングしないことを意図的に選択したことに注意してください。
UTF-8 への再コーディングができないため、コミット オブジェクト レベルで UTF-8 を強制するように作られました。
必然的に可逆的な操作になります。
ENVIRONMENT そして CONFIGURATION 変数
コミットログメッセージを編集するエディタはGIT_EDITORから選択されます。
環境変数、core.editor 構成変数、VISUAL 環境
変数、またはEDITOR環境変数(この順序)を参照。 git-var詳細は(1)。
フック
このコマンドは、commit-msg、prepare-commit-msg、pre-commit、および post-commit フックを実行できます。
詳細はこちら: githook(5)詳細については。
onworks.net サービスを使用して git-commit をオンラインで使用する