这两天正式接触 Github,第一天使用它来创立博客(见上一篇),第二天使用它就遇到了一些很基础的问题,下面是遇到的错误原因以及解决方法。

四个常用操作命令:

  1. git add <file>
  2. git commit -m “your comment”
  3. git remote add origin git@github.com:yourname/yourrepository.git
  4. git push origin master

两个仓库:

  1. 本地仓
  2. 远程仓

操作顺序:

1
2
3
4
5
$ git init
$ git add <file>
$ git commit -m "your comment"
$ git remote add origin https://github.com/yourname/yourrepository.git
$ git push -u origin master

-u 这个元素是在第一次本地仓传输到远程仓时使用,第二次开始就不需要添加这个元素。
https://github.com/yourname/yourrepository.git 可以更换为 git@github.com:yourname/yourrepository.git,前者是需要登入 Github 页面,后者使用 SSH 密钥登陆。


使用过程中遇到的问题,以 README.txt 文件为例。

Q1:pathspec ‘README.txt’ did not match any files

1
2
3
$ git init
$ git add README.txt
fatal: pathspec 'README.txt' did not match any files

原因:README.txt 没有与任何文件匹配,就是在该文件下找不到 README.txt。
解决:查找该文件是否存在 README.txt,或者是名称写错了。

Q2:src refspec master does not match any.

1
2
3
4
5
6
$ git init
$ git add README.txt
$ git remote add origin https://github.com/yourname/yourrepository.git
$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourname/yourrepository.git'

原因:master 分支未匹配成功,因为本地仓现在是空仓,无法将本地仓内容传输到远程仓里。
解决:需要将工作区的内容先添加到暂存区,接着将暂存区的内容提交到 master 分支,上述就是工作区传输到本地仓的内容;然后再将本地仓与远程仓匹配起来,接着将本地仓的内容推送到远程仓上,上述就是本地仓传输到远程仓。

1
2
3
4
$ git add README.txt
$ git commit -m "wrote a txt"
$ git remote add origin https://github.com/yourname/yourrepository.git
$ git push -u origin master

Q3:remote origin already exists.

1
2
$ git remote add origin https://github.com/yourname/yourrepository.git
fatal: remote origin already exists.

原因:远程仓已经存在
解决:清空远程仓里的内容

1
$ git remote rm orgin

Q4:Please enter the commit message for your changes.

1
2
3
4
5
6
7
8
9
10
11
$ git add README.txt
$ git commit
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: README.txt

原因:$ git commit 会启动文本编辑器以便输入本次提交的说明。
解决:1、可以添加注释,按键盘字母 i 进入添加注释模式,在第一行输入操作命令 $ git commit -m “add new commit”,然后再输入“:wq”退出。见下文第一个框;2、不添加注释,按“Esc”键,再输入“:wq”退出。见下文第二个框。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git commit -m "add new comment" :wq
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: README.txt
~
~
~
--输入--

1
2
3
4
5
6
7
8
9
10
:wq
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: README.txt

最后附上廖老师的 GIT 教程,里面有更全面的知识。😀