git commit -m 使用問題
今天提交文件到github,步驟是:
- git add abc.py (abc.py是我當前隨意寫的一個文件名)
- git commit -m 'add codes for abc'
- git push origin
在第二步是,出現錯誤,錯誤如下:
D:\tensorflow>git commit -m ' add codes for abc'
error: pathspec 'add' did not match any file(s) known to git.
error: pathspec 'codes' did not match any file(s) known to git.
error: pathspec 'for' did not match any file(s) known to git.
error: pathspec 'abc'' did not match any file(s) known to git.
語法上沒有問題,總是提交不了,最后發現,在Linux系統中,commit信息使用單引號''包括,我使用的windows系統,信息應該是雙引號""包括,即第二步命令正確格式是git commit -m "add condes for abc"
還有一些別的問題
在分析上面問題的時候,發現了幾個有用的命令:
-
git commit --amend
- 此命令將使用當前的暫存區域快照提交。如果剛才提交完沒有作任何改動,直接運行此命令的話,相當於有機會重新編輯提交說明,但將要提交的文件快照和 之前的> 一樣。啟動文本編輯器后,會看到上次提交時的說明,編輯它確認沒問題后保存退出,就會使用新的提交說明覆蓋剛才失誤的提交
- 如果剛才提交時忘了暫存某些修改,可以先補上暫存操作,然后再運行 --amend 提交步驟是:
- $ git commit -m 'initial commit'
- $ git add forgotten_file
- $ git commit --amend
-
git reset
- 文件從暫存區回退到工作去,就是回退
git add
命令的執行,區別於git commit --amend
,該命令更傾向於取消上一次的暫存區提交,git commit --amend
更傾向於修改提交說明
- git reset HEAD filename
- 回退指定名稱的文件,將文件從暫存區回退到工作區 //也可以使用 git reset filename
- git reset -q
- 不會重置引用,更不會改變工作區,而是用指定提交狀態(
)下的文件( )替換掉暫存區中的文件。例如命令git reset HEAD 相當於取消之前執行的git add 命令時改變的暫存區。
更詳細介紹請移步: https://www.cnblogs.com/craftor/archive/2012/11/04/2754140.html
- 不會重置引用,更不會改變工作區,而是用指定提交狀態(
- 文件從暫存區回退到工作去,就是回退