github 使用“git commit -m"命令时候出现的一个小问题

git commit -m 使用问题

今天提交文件到github,步骤是:

  1. git add abc.py (abc.py是我当前随意写的一个文件名)
  2. git commit -m 'add codes for abc'
  3. git push origin

在第二步是,出现错误,错误如下:

D: ensorflow>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更倾向于修改提交说明
    1. git reset HEAD filename
      • 回退指定名称的文件,将文件从暂存区回退到工作区  //也可以使用 git reset filename
    2. git reset -q