2012-10-31 50 views
1

我有,我想运行git pull运行git拉无误

其中一些可能是空的目录列表。

当我在它上面运行git pull,我得到这个错误:

Your configuration specifies to merge with the ref 'master' 
from the remote, but no such ref was fetched. 

1

退出代码我有我的脚本,如果任何命令失败退出。

是否有可能检测是否因此错误而失败?或者任何其他方式拉哪些不会在空的存储库中出错?

编辑:.git/config

git:(master) cat .git/config 
[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = <git repo url> 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
+0

你的git配置文件是什么样子的? – Rorchackh

+0

@Rorchackh,在我的问题中加入了它。我刚刚运行了一个普通的'git clone'。 – user1527166

+0

当你运行** git pull origin master **时会发生什么? – Rorchackh

回答

1

这是从here

带至路径克隆一个空的回购协议,

  1. /保持在〜/ git的onefile包含一个无害的0的非裸Git回购 文件,如.gitignore。 (可选择地,创建这样的回购
    动态。)
  2. (CD〜/ GIT中/ onefile; GIT中推路径主)
  3. GIT中克隆-o 名称路径

换句话说,不要尝试克隆空回购,而是在创建它之后,推送一个包含一个无害文件的简单回购。然后它不再是空的并且可以被克隆。

0

您可以在远程参考存在下对其进行测试。例如,主引用在初始化之后还不存在,所以在Windows批处理脚本中它会是这样的:

git ls-remote -h --exit-code myrepo master > nul && (
    git pull myrepo master 
)