こう 聞かれます
- 「Git で
変更を 記録して、 チームに 共有するまでの 流れを 説明してください」 - 「git add は
何の ために あるのですか。 いきなりコミットできないのは なぜですか」 - 「コミットしたのに、
ほかの 人から 見えないと 言われました。 何が 足りませんか」 (裏から聞く形)
面接官が 見ている点
- コマンドの
名前を 並べるだけでなく、 変更が 「どこからどこへ」 動くかで話せるか - add を
「保存」と 言わず、 次の コミットに 入れる 物を 選ぶ操作だと 分かっているか - コミットは
手元の 記録で、 push して 初めて 共有される、と 区別できているか
短い答え
- ファイルを
直すと、 まず 手元の 作業場所 (作業ツリー) が 変わります。 - git add で
次の コミットに 入れる 変更を 選んで ステージに 載せ、 git commit で 1 つの 記録として 残します。 - git push で
手元の コミットを 共有の リポジトリへ 送ると、 ほかの 人も 取り込めるようになります。
少し 詳しい答え
置き場の 動きを確かめる
2 つのgit status --short は、
ターミナル
git init -q --bare up.git
git init -q -b main demo
cd demo
git config user.name Aya
git config user.email a@x.jp
echo "買い物" > memo.txt
echo "宿題" > todo.txt
git status --short
git add memo.txt
git status --short
git commit -q -m "メモを足す"
git status --short
git remote add origin ../up.git
git push -q origin main
git log --format=%s origin/main?? memo.txt
?? todo.txt
A memo.txt
?? todo.txt
?? todo.txt
メモを足す?? はA は
add があるわけ
ステージが
作った
よく ある間違い
- 「add は
ファイルを 保存する こと」と言う add は 次の コミットに 入れる 変更を 選ぶ操作です。 記録として 残るのは コミットのときです - 「コミットすれば
チームに 共有される」と言う コミットは 手元の リポジトリの 記録です。 push するまで、 ほかの 人には 届きません - 何でも
git add .でまとめて 入れると話す 関係の 無い 変更や、 入れてはいけない ファイルまで 混ざります。 status や diff で 中身を 見てから 選ぶ、 と添えます
深掘りの問い
- 「push する
前に、 いまの 状態や 直した 中身を 確かめるには」 git statusで置き場の 状態を、 git diffで直した 行を 見る、と答えます - 「パスワードを
書いた 設定ファイルを コミットしないように するには」 .gitignoreに書いて Git に 見せない、と 答えます。 一度 push した 秘密は 履歴に 残るので、 鍵その ものを 取り替える、 とも添えます - 「push したら
断られました。 何が 起きていますか」 共有側に 自分の 持っていない コミットが ある、と 答えます。 先に pull で 取り込んでから push し直します