如何理解和修复git警告?

问题描述 投票:-1回答:1

我是使用Git的新手。出于学习目的,我编写了一个小脚本来创建练习存储库。第一次尝试时不起作用。经过几次Google搜索后,它仍然有效,但有一个警告。警告是:

“警告:您似乎已经克隆了一个空的存储库”

显然,该新存储库IS为空。是否有“ git”选项可修复该警告?脚本如下

rm -rf remoteDir; mkdir remoteDir; cd remoteDir; git init --bare; cd ..;
rm -rf cloneDir;  git clone remoteDir cloneDir; 
cd cloneDir; git add -A; git commit -m "Initial Commit" --allow-empty; git push;
git branch; git remote -v; git status; 
git
1个回答
0
投票

是否有用于纠正该警告的“ git”选项?

编号

如果愿意,您可以忽略警告。不过,它告诉您一些有用的信息:克隆没有提交的存储库时,您不会得到任何提交。如果没有提交,则不能有任何分支。更准确地说,您没有分支names

您可以(并将)拥有一个名为master当前分支,但该分支不存在。这是一个特殊的状态,值得警告您。

只是警告

仅是警告的原因是,在新的完全空的存储库中,这种特殊状态是normal,例如在运行git init创建新的完全空的存储库后得到的状态。 clone这样的存储库只是不寻常的。没错,只是不寻常

创建普通存储库后具有空白存储库,这是normal。克隆后拥有一个空的存储库通常是not,因为克隆一个空的存储库是不正常的。这就是所有的一切。

您可以将您的初始存储库设置为非空

此顺序:

rm -rf remoteDir; mkdir remoteDir; cd remoteDir; git init --bare; cd ..

创建一个新的完全空的存储库。如果您创建此存储库,但随后对其进行添加提交,它将变为非空。

不过,很难将提交添加到裸仓库中。原因很简单:

  • 在正常的Git使用中,我们首先将一些提交提取到工作区中。
  • 这意味着需要一个工作区域(当然还有一些现有的提交)。裸仓库没有工作区。

因此,我们通常获取裸存储库的方法是使用git push将它们放置在其他[[不是裸露的Git存储库中。为此,您将克隆空的存储库(得到警告),然后在非空存储库中进行新提交,然后将其git push返回到裸存储库。现在,裸仓库中只有一个提交,并且有一个分支。现在,您可以删除用于使用初始提交填充裸存储库的克隆,然后重新开始并且不会收到警告。当然,您将在此过程中得到一个警告,但是您可以忽略它,因为您知道为什么得到警告以及您在这里正在做什么。

注意,GitHub可以选择创建一个非空的裸存储库

GitHub在其服务器上创建的存储库是裸露的,但是当他们创建一个存储库时,它们

可以

创建一个带有初始README.md和/或其他一些文件的初始提交。他们用他们编写的一些代码来做到这一点,而我们没有,所以我们做起来不像他们那么容易。

您可以学到更多有关Git的知识,并编写自己的代码来执行此操作,但是当您知道how

来执行此操作(使用git commit-treegit update-ref)时,您可能不想反正GitHub麻烦是因为它们为不了解此

直到您提交后才能有分支]的天真的Git用户提供服务:这对那些天真的用户隐藏了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.