4

私はGitの複雑さに頭を包み込もうとしています。

「gitclone[urlhere]」を使用してGitHubからリポジトリをプルダウンしました。

私はいくつかの変更を加え、「gitcommit」でそれらをコミットしようとしました。これは、変更をローカルリポジトリ(ローカルディレクトリ ".git)にプッシュするようには見えなかったため、代わりに" gitcommit-a"を使用することをお勧めします。

「gitcommit」に「-a」を追加する必要があるのはなぜですか?gitの「stage」と「commit」の違いは何ですか?

4

5 に答える 5

8

-a--all
変更および削除されたファイルを自動的にステージングするようにコマンドに指示しますが、gitに通知していない新しいファイルは影響を受けません。

Gitにはステージングエリアがあります。デフォルトgit commitでは、そのステージング領域に追加されたデータのみをコミットします。スイッチは、作業コピー自体からのコミットされていないすべての-a変更をコミットします。

ステージング領域の考え方は、すべての変更を一度にコミットしたくない場合があるということです。その場合はgit add、コミットするファイルを作成します。または、さらにきめ細かくしたい場合は、コミットgit add -pするファイル内の一部の変更のみを選択します。

素敵な説明と、GitHub Gitチュートリアルで基本的にどのように機能するかを示す画像があります:http://web.archive.org/web/20130519130755/http ://learn.github.com/p/normal.html

于 2013-01-22T13:42:24.980 に答える
6

あなたはする必要はありません。

この-aオプションはgit commit、リポジトリにあるファイルに加えたすべての変更を自動的に追加するように要求します。

あなたはいつもそれを望んでいるわけではありません。特に、変更グループを区別するために複数のコミットを行いたい場合があるためです。追加するものを選択する場合は、通常、を使用してコミットする前に変更を追加しますgit add

于 2013-01-22T13:42:23.517 に答える
1

git commit -a

の略記です:

git add file.txt
git commit file.txt

これは、新しいファイルをリポジトリにコミットするためのより簡単な方法です。(ファイルをコミットする前に、ファイルを「追加」する必要があります)

于 2013-01-22T13:42:21.970 に答える
1

git -a commitと同等です

git add . 
git commit
于 2013-01-22T13:42:53.407 に答える
1

変更されたファイルまたは追跡されていないファイルのいずれかをコミットする場合は、明らかに2つのことを行う必要があります。

最初のものは「ステージング」です2番目のものは「コミット」です

ステージングは​​、コミットジャーニーの中間段階です。もちろん、オプションです。ステージングプロセスは、偶発的なコミットを防ぐためだけのものです。一般に、コミットする前に、新しい追跡されていないファイルまたは追跡されたファイルの変更をステージングする必要があります。その後、ステージングされgit commit たファイルを入力すると、コミットのみになります。

単にステージングの主な目的は、偶発的なコミットを防ぐことです。ステージングプロセスを使用する場合は、を使用してコミットする前に変更を破棄すると便利git checkout filenameです。

このページを見てください:http://git-scm.com/about/staging-area

ステージングが必要ないと本当に確信している場合は、ステージングを使用git commit -a して、現在のすべての追跡されていないファイルと追跡されたファイルの変更をコミットするだけです。

現在のコミットで不要な変更を破棄できるため、常にステージングを実行することをお勧めします。使用する場合は、ステージングgit commit -aに使用する必要はありませんgit add filename

于 2013-01-22T14:08:04.647 に答える