我有几个本地git仓库,这是逻辑上分离的项目。当每个项目完成后,我想让整个存储库成为“存档”存储库的一个分支,以防将来出现错误。因为最终每个存储库都将成为归档存储库的一部分,所以我认为我会从一开始就将每个存储库推送到归档存储库的远程副本。你可以推动整个git仓库到另一个(远程)仓库的分支
所以,我有不同的版本库:存档,A,B,......我想将它们推送到远程,这将是这样的:
archive -- A as a branch
\---B as a branch
等。
我已经通过git的文档搜索,并上了网,并具有以下别名想出了这样做的:
backup = "!for br in $(git branch --column|sed 's/*//';); do git push archive ${br}:$(basename $PWD)/${br}; done"
所以,现在,从A说,我可以这样做:
git remote add archive ssh://[email protected]/.../archive.git
git backup
这会将A中的每个分支X都推送到远程分支A/X上。不幸的是,A中的每个分支都是远程存储库上的一个单独的断开连接的分支,所以我在A中失去了历史,而这并不是我想要的。
有没有办法将A上的所有分支推送到远程回购的单个分支(或者说是一棵树)?或者我的整个方法被误导了,还有更好的方法来做到这一点?
干杯, 安德鲁
为什么不使用'git tag'正确标记不同项目的稳定版本? –
您的最终产品将是一个“回购充分的回购”,其中,从“回购充满回购”中获得“回购Q”,您必须首先复制整个回购仓库,然后去掉所有不需要的回购仓库只有repo Q,然后将所有分支重新命名为原来的名称。这不是git的设计目的,它会变得尴尬和缓慢。最好将你的repo归档到(dir |文件夹)-full-of-repos。然后,为了将“repo Q”从“(dir | folder)充满repos”中取出,您只需复制“dir/repoQ”即可完成。 – torek