我是使用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”选项?
编号
如果愿意,您可以忽略警告。不过,它告诉您一些有用的信息:克隆没有提交的存储库时,您不会得到任何提交。如果没有提交,则不能有任何分支。更准确地说,您没有分支names。
您可以(并将)拥有一个名为master
的当前分支,但该分支不存在。这是一个特殊的状态,值得警告您。
仅是警告的原因是,在新的完全空的存储库中,这种特殊状态是normal,例如在运行git init
创建新的完全空的存储库后得到的状态。 clone这样的存储库只是不寻常的。没错,只是不寻常。
创建普通存储库后具有空白存储库,这是normal。克隆后拥有一个空的存储库通常是not,因为克隆一个空的存储库是不正常的。这就是所有的一切。
此顺序:
rm -rf remoteDir; mkdir remoteDir; cd remoteDir; git init --bare; cd ..
创建一个新的完全空的存储库。如果您创建此存储库,但随后对其进行添加提交,它将变为非空。
不过,很难将提交添加到裸仓库中。原因很简单:
因此,我们通常获取裸存储库的方法是使用git push
将它们放置在其他[[不是裸露的Git存储库中。为此,您将克隆空的存储库(得到警告),然后在非空存储库中进行新提交,然后将其git push
返回到裸存储库。现在,裸仓库中只有一个提交,并且有一个分支。现在,您可以删除用于使用初始提交填充裸存储库的克隆,然后重新开始并且不会收到警告。当然,您将在此过程中得到一个警告,但是您可以忽略它,因为您知道为什么得到警告以及您在这里正在做什么。
GitHub在其服务器上创建的存储库是裸露的,但是当他们创建一个存储库时,它们
README.md
和/或其他一些文件的初始提交。他们用他们编写的一些代码来做到这一点,而我们没有,所以我们做起来不像他们那么容易。您可以学到更多有关Git的知识,并编写自己的代码来执行此操作,但是当您知道how
来执行此操作(使用git commit-tree
和git update-ref
)时,您可能不想反正GitHub麻烦是因为它们为不了解此直到您提交后才能有分支]的天真的Git用户提供服务:这对那些天真的用户隐藏了这个问题。