Gitは

2017-09-14 20 views
0

をステージングすることなく、コミット私はgitのは例えば、直接ステージングを使用せずに(ローカルで修正された)追跡されたファイルをコミットすることを可能にすることに気づいた:Gitは

$ git status -s . 
M myfile.txt 
$ git commit myfile.txt -m"1 way" 

それが使用することをお勧めし、代わりに、「クラシック」2ステップ? :

$ git add myfile.txt 
$ git commit myfile.txt -m"2 way" 

答えて

1

あなたが影響を受けない程度にGitを告げていないgit commit -a -m [message]

-a

自動的に変更され、削除されたファイルをステージングするコマンドを知らせるが、新しいファイルを試してみてください。

新しいファイルでは機能しませんが、明示的に追加する必要があります。

これは単なるステップでコミットされた段階です。私はstatusを使用しているときにすべての変更された状態を見ることができ、通常は小さなインクリメンタルなコミットを作成するので便利です。

4

「クラシック」の2つのステップを代わりに使用する方が良いですか?

git commitのドキュメントでは、次のコミットに含める何のGitを伝えるために劣らずより5の方法に言及している:

いくつかの方法で指定することができます追加する内容:

  1. git addを使用して、コミットコマンドを使用する前にインデックスに変更を徐々に追加する(注:変更されたファイルでも "追加"する必要があります)。
  2. git rmを使用して、コミットコマンドを使用する前に、作業ツリーとインデックスからファイルを削除してください。
  3. コミットコマンドの引数としてファイルをリスト表示すると(--interactiveまたは--patchスイッチなし)、その場合、コミットはインデックス内のステージングされた変更を無視し、リストされたファイルの現在の内容を記録しますGit);
  4. -aスイッチをcommitコマンドで使用すると、既知のすべてのファイル(つまり、インデックスに既にリストされているすべてのファイル)の変更を自動的に「追加」し、索引内のファイルを自動的に "rm"作業ツリーを作成し、実際のコミットを実行します。
  5. コミットコマンドで--interactiveまたは--patchスイッチを使用して、操作を確定する前に、インデックス内のコンテンツに加えてコミットの一部であるファイルまたはハンクを1つずつ決定することにより、これらのモードを操作する方法については、git-addの「インタラクティブモード」セクションを参照してください。

他は「より良い」している間、それらのいくつかは「良い」であるため、非常に多くのオプションがありません。 Gitにはたくさんのオプションがありますので、は好きなものを選ぶか、特定の状況に最も適したものを選んでください。

たとえば、前回のコミットの一部である(ただし、コミットするのを忘れていた)変更されたファイルがあり、現在のインデックスには次のコミットの準備が整っていることがわかっている場合は、質問(上記のオプション#3)では、インデックスを変更せずにそのファイルだけをコミットすることができます。この方法では、欠落したファイルが行をスキップし、前回のコミットの直後に、次のコミットに干渉することなく、所属する場所でコミットされます。

+0

'git commit 'には、 'git commit --only 'と 'git commit --include 'という2つの味があります。 Gitが本当にしているのは、* temporary *インデックス/ステージング領域を使用することです。 '--only'は" HEAD'から一時ファイルを設定し、リストされたファイルをそこに置く "ことを意味し、' --include'は "現在のインデックスから一時ファイルを設定し、そこにリストされたファイルを置く"ことを意味します。 – torek