介绍
git是每天都要用的工具,在使用过程中,难免遇到一些问题,姑且罗列一下供日后参考
fatal: not a git repository (or any of the parent directories): .git
这个错误一般是因为当前目录不是一个git仓库,解决方法是切换到正确的git仓库目录,或者使用git init命令初始化一个新的git仓库。
大家注意到了吗?这个错误消息最后有一个.git, .git是每一个git仓库根目录下都有的文件夹,git在当前目录下找不到这个文件夹,而且在当前目录的所有父目录下也找不到这个文件夹,所以就报了这个错误。
error: pathspec ‘feature/123456’ did not match any file(s) known to git
这个错误一般是因为你要checkout的分支或者文件不存在,解决方法是检查拼写是否正确,可以使用git branch命令查看本地分支列表.
如果是在某个分支的基础上创建一个新的分支,比如在develop分支上创建feature分支。那么可以先切换到develop分支,然后再通过-b选项创建feature分支,命令如下:
1 | git checkout develop |
这里-b选项表示创建一个新的分支并切换到该分支。
fatal: reference is not a tree: xxxx
这里xxx对应一个commit id,这是昨天遇到的一个问题,因为同事的代码有问题需要大家研究一下,但是这些代码还在develop分支上,所以我就使用下面的命令来对指定的commit进行checkout操作,于是就出现了上面的问题。
1 | git checkout -b my-branch <commit_id> |
经过一番研究,发现原因是没有更新代码,因为我是在自己的分支上运行这个命令的,此时我的分支并没有包含这个commit。解决方法就是先切换到develop分支,然后执行git pull命令更新代码,最后再运行上面这个命令就行了。