git clone是不是克隆某个存储库的最新版本?

时间:2017-06-14 06:17:12

标签: git github

我一直注意到我无法克隆最近的版本 名为kaldi的存储库。

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

我已经尝试过克隆,并从当前的git目录中获取git,该目录指出这是最新的,这是没有意义的。

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

3 个答案:

答案 0 :(得分:1)

新克隆后要检查的第一件事是:

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

这会让你知道你的分支是一个,你看到的提交(以及它的9个父提交)

如OP所述:

  

我最初分配了回购,并试图更新我的本地回购   但是因为那个没有发生任何变化,所以没有什么可以拉

在这种情况下,通常会看到" Git working fork with updates":您会在upstream/master之上重新定位您的本地分支。

我刚刚在我的Windows 10笔记本电脑上使用Git 2.13克隆了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:&#39; 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 &#39;之一。

如果我添加:

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 确实有效!

我刚刚测试了一个稀疏克隆,它也有效:

#include <vector>
#include <map>
#include <tuple>

namespace metafunction_impl
{
  // meta function taking one type (T) and 'returning' one type.
  // i.e. a unary metafunction
  template<class T> struct get_value_type
  {
    using result = typename T::value_type;
  };
}

// provide clean interface to the metafunction
template<class T> using GetValueType = typename metafunction_impl::get_value_type<T>::result;

template<class... Types>
class CartesianProduct
{
public:
    CartesianProduct(Types... args) : sets(args...) {}

    std::tuple<Types...> sets;

    // use my metafunction
    std::tuple<GetValueType<Types>...> combination; 
};


int main() {
    std::vector<int> i;
    std::map<int, std::vector<int>> m;

    CartesianProduct<std::vector<int>, std::map<int, std::vector<int>>>
      c(i, m);

    return 0;
}

答案 1 :(得分:1)

  

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

克隆时,您无需拉动。你已经有了最新的提交。

答案 2 :(得分:0)

抱歉......我的错误是由不同的方式引起的。我最初分配了回购,并试图更新我的本地回购。但由于那个没有发生任何变化,所以没有任何东西可以拉动...... Doh