Git常见错误与操作:error: src refspec master does not match any解决办法

Git常见错误与操作:error: src refspec master does not match any解决办法

一、 出现错误 error:src refspec master does not match any

原因分析:

引起该错误的原因是目录中没有文件,空目录是不能提交上去的

解决办法:

 

$ touch README
$ git add README
$ git commit –m’first commit’
$ git push origin master

 

(来自:http://www.open-open.com/lib/view/open1366080269265.html)
实际上

 

$ git init

 

这一步之后创建了一个名为.git的文件夹,不过它在默认状态下是隐藏的,系统将隐藏文件夹显示出来,可以看到有这样一个文件夹。
github上传项目方法:
http://www.oschina.net/question/159132_86728
在你的电脑上装好git

大致流程是:

 

1、 在github上创建项目
2、 使用$ git clone https://github/xx账号/xx项目.git克隆到本地
3、 编辑项目
4、 $ git add .(将改动添加到暂存区)
5、 $ git commit –m”提交说明”
6、 $ git push origin 将本地更改推送到远程master分支

 

 

 

这样你就完成了向远程仓库的推送

如果在github的remote上已经有了文件,会出现错误。此时应当先pull一下,即:

 

$ git pull origin master

 

 

 

然后再进行:

 

$ git push origin master

 

获取跟多JAVA教程,请点击这里​​​​​​​

 

 

 

二、如果输入$ git remoteadd origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 

    提示出错信息:fatal: remoteorigin already exists.

    解决办法如下:

    

1、先输入$ git remote rmorigin
    2、再输入$ git remote addorigin git@github.com:djqiang/gitdemo.git 就不会报错了!
    3、如果输入$ git remote rmorigin 还是报错的话,error: Could not remove config section'remote.origin'. 我们需要修改gitconfig文件的内容

 

 

 

    4、找到你的github的安装路径

    5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

三、如果输入$ ssh -T git@github.com
    出现错误提示:Permissiondenied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

    解决办法如下:

    1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

    2、如果还是不行的话,输入ssh-add~/.ssh/id_key 命令后出现报错Could not open a connection toyour authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

    3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

四、如果输入$ git push origin master

    提示出错信息:error:failedto push som refs to .......

    解决办法如下:

 

    1、先输入$ git pullorigin master //先把远程服务器github上面的文件拉下来
    2、再输入$ git pushorigin master
    3、如果出现报错 fatal:Couldn't find remote ref master或者fatal: 'origin' doesnot appear to be a git repository以及fatal: Could notread from remote repository.
    4、则需要重新输入$ git remoteadd origingit@github.com:djqiang/gitdemo.git

 

 

 

 

 

五、Git常见操作

使用git在本地创建一个项目的过程

 

    $ makdir ~/hello-world    //创建一个项目hello-world
    $ cd~/hello-world       //打开这个项目
    $ git init             //初始化 
    $ touch README
    $ git add README        //更新README文件
    $ git commit-m 'first commit'     //提交更新,并注释信息“first commit” 
    $ git remote add origin git@github.com:defnngj/hello-world.git     //连接远程github项目  
    $ git push -u origin master     //将本地项目更新到github项目上去

 

 

 

 

 

六、gitconfig配置文件

        Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置: 
         1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。 
         2.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。
         3.位于git目录的config文件 (也就是.git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。
        在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:\Documents and Settings\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。

 七、配置相关信息:

        1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

 

  $ git config --global user.name "John Doe"
  $ git config --global user.email johndoe@example.com

 

 

 

 

 

      2   你的编辑器(Your Editor)

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:

 

  $ git config --global core.editor emacs

 

 

 

 

 

3 检查你的设置(Checking YourSettings)

  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:

 

  $ git config --list

 

 

 

 

 

      你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:

 

  $ git config user.name

 

 

 

 

 

     4 获取帮助(Getting help)

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:

 

  $ git help <verb>
  $ git <verb> --help
  $ man git-<verb>

 

 

 

 

 

  例如,你可以运行如下命令获取对config命令的手册页帮助:

 

  $ git help config

获取跟多JAVA教程,请点击这里

 

 

 

 

 

### 解决 Git 推送时出现 'src refspec master does not match any' 错误的方法 当执行 `git push -u origin master` 命令时,如果遇到 `'src refspec master does not match any'` 的错误提示,这通常意味着本地仓库中不存在名为 `master` 的分支。以下是可能的原因以及解决方案: #### 可能原因分析 1. **默认分支名称变更** 自 Git 2.28 起,默认创建的新分支名从 `master` 更改为 `main`[^4]。因此,在某些情况下,开发者可能会尝试推送一个并不存在的 `master` 分支。 2. **未正确初始化分支** 如果尚未在本地创建任何提交记录,则不会存在可以推送到远程的分支。 --- #### 解决方案一:确认当前分支名称 运行以下命令查看当前所在分支及其状态: ```bash git branch ``` 此命令会列出所有本地分支,并标记当前所在的分支(带星号)。如果没有看到 `master` 分支,则可能是新版本 Git 默认创建的是 `main` 或其他命名的分支。 如果是这种情况,可以通过重命名现有分支为 `master` 来解决问题: ```bash git branch -M main master ``` --- #### 解决方案二:切换到正确的分支 如果发现当前分支并非 `master`,而是另一个分支(例如 `main`),可以直接将其推送到远程服务器作为新的主分支: ```bash git push -u origin HEAD:refs/heads/master ``` 或者更简单的方式是直接推送当前分支至远程同名分支: ```bash git push -u origin main ``` --- #### 解决方案三:创建一个新的 `master` 分支 如果确实需要一个名为 `master` 的分支,可以在本地手动创建它: ```bash git checkout --orphan master git add . git commit -m "Initial commit on master" git push -u origin master ``` 上述操作将创建一个新的孤立分支 `master` 并完成初始提交和推送。 --- #### 额外注意事项 - 若仍然无法成功推送,请检查是否存在钩子脚本阻止推送行为的情况。例如,引用中的信息提到更新脚本返回非零值可能导致推送失败[^1]。 - 确认 `.git/config` 文件配置是否正确指向目标远程仓库地址。 --- ### 总结 通过以上方法可有效解决因分支缺失引发的 `'src refspec master does not match any'` 错误问题。具体实施需依据实际环境调整相应指令参数。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值