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
- 不会重置引用,更不会改变工作区,而是用指定提交状态(
- 文件从暂存区回退到工作去,就是回退