使用GitHub如何在添加现有回购协议时推送所有分支?


125

我创建了一个新的GitHub存储库-我想将现有的存储库放在那里。
我按照指示进行:

cd existing_git_repo
git remote add origin git@github.com:acme-org/myprj.git
git push origin master

这只会将master分支推送到GitHub。
如何将现有存储库中的所有内容(包括所有分支)推送到新的GitHub存储库中?


注意:您还拥有git push --follow-tagsgit 1.8.3+(2013年5月)。请在下面
VonC 2014年

Answers:


237

注意:git push --all不会推送您的标签,只会推送您的分支。

git push --all
git push --tags

真的会推动一切。另请参见“ 设置git以拉动和推动所有分支 ”。在实际推送所有内容之前,请
不要忘记--dry-run进行一些测试的选项。
另请参见GitHub帮助“ 使用远程对象 ”将您的来源设置为GitHub远程存储库。


如“ 如何使“ git push”在分支内包含标签? ”中所述,git 1.8.3+(2013年5月)引入了:

git push --follow-tags

这不会推送所有标签,而只会推送您正在推送的分支头中可访问的标签。

这样可以帮助您使用一个命令而不是两个命令来完成该操作(推送提交标签)。

Git 2.4.1+(2015年第二季度)将引入该选项push.followTags


当您想推送到另一个远程站点(而不是源站点)时,这似乎不起作用,它只推送了我当前的分支。
阿洛伊斯

@Aloys将取决于您的git版本和当前的默认推送策略:stackoverflow.com/questions/10002239/…–
VonC

如果您还想推送远程分支机构,请使用--mirror
BFar

18

接受的答案不太正确,或者至少对我没有用。我还需要指定远程仓库,例如:

git push origin --all

仅当未设置上游时才需要指定遥控器。
aross

如果添加了多个遥控器,则需要存储库,我相信($git remote -v
michael

2
要在本地和远程git push -u origin --all
分支
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.