git commit未能提交指定檔案原因

admin發表於2018-07-12

通過git commit指令可以將暫存區中的內容提交到當前分支。

看一段程式碼例項:

[Shell] 純文字檢視 複製程式碼
$ git commit -m "螞蟻部落第一次提交"

程式碼會將暫存區中的內容提交到當前分支,提交說明資訊是"螞蟻部落第一次提交"。

下面我們來思考一個這樣的問題:

(1).修改readme.txt檔案。

(2).通過git add命令將其提交到暫存區。

(3).然後再修改readme.txt檔案。

在最後修改完成之後,很多初學者可能就認為執行git commit命令想將最後的修改提交到當前分支。

但是執行結果卻不是預期,最後一次修改並不能被提交到當前分支。

commit之前看一下狀態:

[Shell] 純文字檢視 複製程式碼
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   readme.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

無法提交原因分析如下:

(1).第一個modified狀態的是第一次修改add到暫存區的檔案。

(2).第二是在工作區修改後,沒有提交到暫存區的檔案。

(3).執行git commit -m "xxxx"只能將暫存區中的內容提交到當前分支。

從工作區直接提交到倉庫:

如果感覺首先從工作區提交到暫存區,然後再由暫存區提交到當前分支過於複雜,可以通過如下命令提交:

[Shell] 純文字檢視 複製程式碼
$ git commit -am "add one line"

使用引數-am替代上面的-m即可實現繞過暫存區直接提交到當前分支。

相關文章