2

VisualStudio2010のアドインとしてGitExtensionsを使用しています。これはうまく機能しています。ただし、リポジトリにコミットするときはいつでも、GUIにより、ステージに追加する適切なファイルを手動で選択する必要があります(これらのファイルにインデックスが付けられ、ステージにすでに追加されている場合でも)。すでにステージングされたファイルはステージを再度選択する必要がないと信じていたので、少し混乱しています。

例:Git ExtensionのGUIで、Commitを使用した後にNetwork.cppをステージに追加しています。次に、任意ですが有用な説明を入力し、ステージングされたファイルをコミットします。次回Network.cppが変更されたときは、リポジトリにコミットした後、Network.cppを再度ステージングする必要があります。

私のワークフローに完全に何か問題がありますか?

よろしくお願いします。

4

1 に答える 1

3

ワークフローに問題はありません。ほとんどの人が最初に持っているのと同じステージング領域(「インデックス」)の誤解に遭遇しています。

SubversionとMercurialを使用すると、ファイルを追跡するようにシステムに指示すると、コミットするたびにそのファイルの変更がチェックされます。追跡されたファイルへの変更は自動的に通知されます。

Gitは異なります。Gitでは、ステージング領域にファイルを追加するのではなく、ファイルに変更を追加します。つまり、ファイルを変更するたびに、次のコミットにそれらを含める場合は、それらの変更を追加する必要があります。ステージング領域に新しい変更を追加しない場合、それらはコミットされません。

通常、変更されたものはすべてコミットする必要があるため、Git Extensionsでは、コミットするたびに[すべてステージング]ボタンを使用するだけで、システムがSubversionやMercurialとほぼ同じように動作することがわかります。コマンドラインを使用するgit commit -aと、追跡されたファイルに加えられた変更を自動的に追加するために使用できます。

于 2012-07-15T08:55:25.150 に答える