Linuxとコマンドラインの基礎

Gitで管理しているファイル main.c を編集した後、「git commit -m "fix"」だけを実行したところ、「no changes added to commit」と表示されてコミットされなかった。理由として、正しいものはどれか。

  1. Aコミットする前に git push で、変更を共有のリポジトリに送っておく必要があるから
  2. Bコミットに含める変更は、先に git add でステージングエリアに登録しておく必要があるから
  3. CGitはファイルを保存したときに自動でコミットするので、git commit を実行する必要がないから
答えと解説を見る

正解:B. コミットに含める変更は、先に git add でステージングエリアに登録しておく必要があるから

Gitでは、作業ディレクトリで編集した変更のうち、git add でステージングエリア(インデックス)に登録したものだけが、次の git commit で記録されます。この2段階のしくみにより、編集した複数の変更のうち、関係のあるものだけを選んで1つのコミットにできます。git status を使うと、どの変更がステージングされているかを確かめられます。追跡しているファイルの変更をまとめて登録してコミットする git commit -a という書き方もあります。

  • A. git push はコミットを共有のリポジトリに送るもので、コミットした後に使います。
  • B. 正しい。git add でステージングした変更だけがコミットされます。
  • C. Gitは自動ではコミットしません。どの変更をいつ記録するかは、利用者が git add と git commit で決めます。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. Gitで git commit を実行したが、チームで共有している GitHub のリポジトリには、そのコミットがまだ表示されていない。理由として、正しいものはどれか。
  2. Gitで管理しているプロジェクトの .gitignore に「build/」と書いたが、以前にコミットした build/out.log の変更が、git status に表示され続ける。理由として、正しいものはどれか。
  3. Linuxの標準的なディレクトリと、そこに置かれるものの組み合わせとして、正しいものはどれか。
  4. Linuxの /proc ディレクトリの説明として、正しいものはどれか。
  5. ディレクトリ /home/alice/data があり、カレントディレクトリは /home/alice/work である。「cd ../data」を実行してから「pwd」を実行したときに表示されるディレクトリとして、正しいものはどれか。