【问题标题】:git clone is not cloning recent version of a certain repository? [closed]git clone 没有克隆某个存储库的最新版本? [关闭]
【发布时间】:2017-06-14 06:17:11
【问题描述】:

我一直在注意到我无法从 名为 kaldi 的存储库。

我怎么知道?我可以看到我在我的计算机上克隆的本地文件与 GitHub 上的不一样。

我尝试过克隆,并从当前的 git 目录中提取 git,它指出这是最新的,这没有任何意义。

什么会阻止我的机器获取最新版本的存储库?

【问题讨论】:

  • 可能是凭证吗?你在正确的分支吗?
  • 可能是您的存储库代码与 git 代码是最新的。仅当您的 repo 代码与 git 代码相同时才会出现此消息。
  • @sob 我在网上看到的更改是在公共版本上,所以我认为这应该不是问题..
  • @Kondiba 我检查过不是这种情况...
  • 如果克隆,则无需拉取。您已经有最新的提交。也许你对分支有点困惑?你克隆了什么,你拉了什么?如果您提取克隆的相同分支,则您是最新的。

标签: git github


【解决方案1】:

新鲜克隆后首先要检查的是:

git status
git log --oneline --graph --decorate -10

这将使您了解您的分支是一个,以及您看到的提交(及其 9 个父提交)

正如 OP 所说:

我最初是 fork 存储库,并试图更新我的本地存储库。
但是因为那个没有任何变化,所以什么都拉不出来

在这种情况下,通常请参阅“Git working fork with updates”:您可以在 upstream/master 之上重新设置本地分支。


我刚刚使用 Git 2.13 在我的 Windows 10 笔记本电脑上克隆了 kaldi-asr/kaldi,我确实看到了一些错误:

D:\git>git clone https://github.com/kaldi-asr/kaldi
Cloning into 'kaldi'...
remote: Counting objects: 83872, done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 83872 (delta 8), reused 19 (delta 5), pack-reused 83832
Receiving objects: 100% (83872/83872), 105.24 MiB | 512.00 KiB/s, done.
Resolving deltas: 100% (65063/65063), done.
error: unable to create file egs/babel/s5d/results/kws_results.104-pashto.flp.marcc2.conf.jtrmal1@jhu.edu.2016-03-31T11:34:24-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.305-guarani.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:04:03-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.306-igbo.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:12:45-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.307-amharic.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:21:34-04:00: Invalid argument
...

并且 git status 显示所有已删除的内容:

D:\git\kaldi>git st
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    .gitattributes
        deleted:    .gitignore
        deleted:    .travis.yml
        deleted:    COPYING
        deleted:    INSTALL

git reset --hard 未能改善情况:

D:\git\kaldi>git reset --hard
error: unable to create file egs/babel/s5d/results/kws_results.104-pashto.flp.marcc2.conf.jtrmal1@jhu.edu.2016-03-31T11:34:24-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.305-guarani.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:04:03-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.306-igbo.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:12:45-04:00: Invalid argument
error: unable to create file egs/babel/s5d/results/kws_results.307-amharic.flp.marcc.conf.jtrmal1@jhu.edu.2016-03-31T12:21:34-04:00: Invalid argument
...
Checking out files: 100% (5243/5243), done.
fatal: Could not reset index file to revision 'HEAD'.

某些文件仍然无法签出,因为它们包含 characters which are not compatible with the Windows filesystem
即':'之一。

如果我添加:

D:\git\kaldi>git config core.sparsecheckout true
D:\git\kaldi>echo !results/ > .git/info/sparse-checkout
D:\git\kaldi>echo /* >> .git/info/sparse-checkout

那么git reset --hard 就可以了!

我刚刚测试了一个稀疏克隆,它也可以工作:

D:\git>git init kaldi2
Initialized empty Git repository in D:/git/kaldi2/.git/

D:\git>cd kaldi2

D:\git\kaldi2>git remote add origin https://github.com/kaldi-asr/kaldi
D:\git\kaldi2>git config core.sparsecheckout true
D:\git\kaldi2>echo !results/ > .git/info/sparse-checkout
D:\git\kaldi2>echo /* >> .git/info/sparse-checkout

D:\git\kaldi2>git pull origin master

【讨论】:

  • 让我用稀疏结帐 (stackoverflow.com/a/41162452/6309) 进行检查,不包括文件夹结果:stackoverflow.com/a/15295915/6309
  • 感谢您的回答..我实际上宁愿有 git 拉解决方案的可能性,而不是克隆...
  • @Lamda 是的,我的回答说明了这两种方法(拉取和克隆),每次都使用排除麻烦文件夹的稀疏结帐。
  • @Lamda 你在 Windows 上吗?你的 Git 版本是什么?
  • 我在 linux/unix..git 版本 2.8.3
【解决方案2】:

我尝试过克隆,并从当前 git 目录 git pull,它 声明这是最新的,这没有任何意义。

当你克隆时,你不需要拉。你已经有最新的提交了。

【讨论】:

  • 我克隆的版本不是最新版本..这就是为什么我 git pull 之后..我已经有一个带有 repo 的 git 目录,我一直在拉取最近的更新,但我只是注意到我需要的更新(错误修复)没有从存储库中提取。
【解决方案3】:

对不起...我的错误是由不同的东西引起的。我最初分叉了 repo,并试图更新我的本地 repo。但由于那一个没有发生任何变化,所以什么都拉不出来……Doh

【讨论】:

  • 谢谢。我已经更新了我的答案,提供了一个指向您可以做什么的链接(在更新的原始存储库之上重新构建您的工作),以便您在本地存储库中查看来自 GitHub 的文件,然后将所有内容推送到您的 fork)
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 2019-09-16
  • 2018-02-08
  • 2020-08-08
  • 1970-01-01
  • 2011-04-03
  • 2014-07-16
  • 1970-01-01
相关资源
最近更新 更多