如何从初始 git 存储库创建共享 git 存储库

How can I create a shared git repository starting from an initial git repository

我目前有一个带有 git 存储库的项目。我想在另一个位置创建一个共享存储库。我原以为我应该采取的方法是首先创建一个裸 git 存储库,然后将我现有的存储库克隆到它,但这没有用:

me@computer> git init --bare shared.git  #Create shared repository in new location
me@computer> git clone .git /path/to/shared/repository/shared.git #From dir with existing repository, try to create clone in shared repository

fatal: destination path '/path/to/shared/repository/shared.git' already exists and is not an empty directory.

接下来我决定克隆共享的 git 存储库,将现有项目中的所有文件添加到新存储库所在的目录,然后将这些文件添加并提交到新存储库,然后使用 git push 将所有这些文件放在共享存储库中。这也没有用。我得到的错误是:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '/path/to/shared/repository/shared.git'

如何将现有存储库中的文件放入共享存储库?

按照您通常创建的方式创建一个新的空 git 存储库(例如,命名为 shared.git)。

将您现有的存储库克隆到名为 shared:

的目录中
$ git clone url_to_existing.git shared 

然后更改您的存储库的远程以使 origin 指向新创建的存储库(URL_OF_SHARED_GITshared.git 存储库的 URL):

$ cd shared
$ git remote set-url origin URL_OF_SHARED_GIT

然后推送master分支:

$ git push -u origin master

大功告成!

注意它只会推送master分支。如果你想推送其他分支,你必须对其他分支做同样的事情。要推送标签,请使用 git push --tags。现在,如果您克隆 shared.git,它将反映您推送的内容。