是否有一种简单的方法可以从存储库中复制分支并保留其历史记录?
我以为我是在进行git clone时得到的,但是在向新存储库添加一个源时,它说它已经有一个,即旧存储库。
我对git真的很陌生,因此请明确回答。 :-)
谢谢。
答案 0 :(得分:4)
克隆存储库时,将从中克隆它的存储库的URL用作远程服务器(通常称为“源”)。那很正常但是,Git可以具有多个远程存储库。 (或者,如果您只需要将远程origin
指向另一个位置,则可以将其指向。)
因此,我们假设“旧”存储库位于http://example.com/old.git,而新存储库中只有来自旧远程服务器的一个分支将位于http://example.com/new.git。在这种情况下,过程如下:
# clone the repository into directory old
git clone http://example.com/old.git old
cd old
# checkout the branch you want to keep, in this case "my-branch"
git checkout my-branch
# create new remote for new repository
git remote add new http://example.com/new.git
# push that branch to the new repository
git push new my-branch
这假定新的存储库已经存在,但是为空。
奖金:如果您想知道哪个远程存储库存在,可以使用
列出它们git remote -v
输出将类似于
origin http://example.com/old.git (fetch)
origin http://example.com/old.git (push)
new http://example.com/new.git (fetch)
new http://example.com/new.git (push)
您可以使用以下方式删除遥控器
git remote remove <name of remote>
但是,这只会删除与远程存储库的连接。您从这些遥控器获得的任何本地分支仍将保留在本地存储库中。