我有一个远程git仓库,它真的取代了我们在另一个旧的SCM中的一切。多年来,许多项目和产品都被添加到了仓库中。在这个repo中有一个分支,对应于我感兴趣的产品。我只想从这个分支创建一个全新的git仓库,而不是真正关心历史记录的丢失。git remote是解决方案吗?我希望这两个仓库都在同一台服务器上。有什么想法?
6mzjoqzu1#
为了从现有仓库创建一个新的Git仓库,通常会创建一个新的 bare 仓库,并将一个或多个分支从现有仓库推送到新仓库。以下步骤对此进行了说明:1.创建一个新的资料档案库。它必须是 bare 才能推送到它。
$ mkdir /path/to/new_repo $ cd /path/to/new_repo $ git --bare init
ssh://my_host/new_repo
1.从现有仓库推送一个分支,例如我们想从现有仓库推送分支topic1,并在新仓库中命名为master。
topic1
master
$ cd /path/to/existing_repo $ git push ssh://my_host/new_repo +topic1:master
此技术允许您保留现有分支的历史记录。注意:新的存储库实际上是一个新的 * 远程 * 存储库。如果要使用新的存储库,必须克隆它。以下代码将把新的存储库克隆到一个名为new_repo的本地工作目录中:
new_repo
$ git clone ssh://my_host/new_repo
在这个例子中,当你克隆新的仓库时,你会看到master分支是旧仓库的topic1分支的副本。
332nm8kg2#
如果你不担心丢失历史记录,可以执行git checkout mybranch,然后将目录内容复制到另一个文件夹中。在该文件夹中,删除.git文件夹,然后:
git checkout mybranch
git init; git commit -a -m "Imported from project Y"
kqlmhetl3#
像平常一样拉下分支,然后将分支推送到使用git init创建的新仓库中。
git init
git push url:///new/repo.git TheBranchFolder
这种方法还保留了以前的所有更改,如果这对这种情况有利的话。
bd1hkmkf4#
我不知道我的答案是否仍然有帮助,但这是另一种使用现有存储库创建新存储库的方法。步骤1:克隆现有的存储库。第二步:删除克隆的repo文件夹中的.git文件夹步骤3:在git中创建一个新存储库。步骤4:在克隆的repo文件夹中运行git init步骤5:git add .步骤6:git remote add origin NEW_REPO/URL步骤7:git branch -M "branch_name"步骤8:git push --set-upstream origin branch_name
.git
git add .
git remote add origin NEW_REPO/URL
git branch -M "branch_name"
git push --set-upstream origin branch_name
uoifb46i5#
我们的计算环境要求在远程服务器上创建git repos,所以git init不是一个好的选择。
git clone <NEW, EMPTY REPO> new git clone <EXISTING REPO> old cd new git remote add --no-tags -f old_repo ../old git checkout -b main old_repo/main git push origin main
5条答案
按热度按时间6mzjoqzu1#
为了从现有仓库创建一个新的Git仓库,通常会创建一个新的 bare 仓库,并将一个或多个分支从现有仓库推送到新仓库。
以下步骤对此进行了说明:
1.创建一个新的资料档案库。它必须是 bare 才能推送到它。
ssh://my_host/new_repo
访问了它。1.从现有仓库推送一个分支,例如我们想从现有仓库推送分支
topic1
,并在新仓库中命名为master
。此技术允许您保留现有分支的历史记录。
注意:新的存储库实际上是一个新的 * 远程 * 存储库。如果要使用新的存储库,必须克隆它。以下代码将把新的存储库克隆到一个名为
new_repo
的本地工作目录中:在这个例子中,当你克隆新的仓库时,你会看到
master
分支是旧仓库的topic1
分支的副本。332nm8kg2#
如果你不担心丢失历史记录,可以执行
git checkout mybranch
,然后将目录内容复制到另一个文件夹中。在该文件夹中,删除.git文件夹,然后:kqlmhetl3#
像平常一样拉下分支,然后将分支推送到使用
git init
创建的新仓库中。这种方法还保留了以前的所有更改,如果这对这种情况有利的话。
bd1hkmkf4#
我不知道我的答案是否仍然有帮助,但这是另一种使用现有存储库创建新存储库的方法。
步骤1:克隆现有的存储库。
第二步:删除克隆的repo文件夹中的
.git
文件夹步骤3:在git中创建一个新存储库。
步骤4:在克隆的repo文件夹中运行
git init
步骤5:
git add .
步骤6:
git remote add origin NEW_REPO/URL
步骤7:
git branch -M "branch_name"
步骤8:
git push --set-upstream origin branch_name
uoifb46i5#
我们的计算环境要求在远程服务器上创建git repos,所以
git init
不是一个好的选择。