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 時被記錄。藉由這種兩階段的機制,可以從編輯過的多項變更中只挑出相關的部分,整合成一個提交。使用 git status 可以確認哪些變更已經暫存。也有 git commit -a 的寫法,可把已追蹤檔案的變更一併登錄並提交。

  • A. git push 是把提交送到共用儲存庫的指令,在提交之後使用。
  • B. 正確。只有用 git add 暫存的變更才會被提交。
  • C. Git 不會自動提交。要在何時記錄哪些變更,由使用者以 git add 與 git commit 決定。
練習這個領域 前往領域頁面

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」時,顯示的目錄是下列何者?