GitHubで既存のリポジトリを追加するときにすべてのブランチをプッシュするにはどうすればよいですか?


125

新しいGitHubリポジトリを作成しました-既存のリポジトリをそこに置きたいのですが。
私は指示に従いました:

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

これはマスターブランチをGitHubにプッシュするだけです。
既存のリポジトリのすべて(すべてのブランチを含む)を新しいGitHubリポジトリにプッシュするにはどうすればよいですか?


注:git push --follow-tagsgit 1.8.3以降(2013年5月)にもあります。以下の私の編集済みの回答を
VonC

回答:


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

これはすべてのタグをプッシュするのではなく、プッシュしているブランチのヘッドからアクセスできるタグのみをプッシュします。

これは、2 つのコマンドではなく1つのコマンドでその操作(コミットタグをプッシュする)を維持するのに役立ちます。

Git 2.4.1+(2015年第2四半期)ではオプションが導入されますpush.followTags


これは、(起点ではなく)別のリモートにプッシュしたい場合には機能しないようです。現在のブランチをプッシュするだけです。
アロイ

:あなたのgitのバージョンと現在のデフォルトのプッシュポリシーに依存するであろう@Aloys stackoverflow.com/questions/10002239/...
VonC

あなたがよく利用としてリモートブランチをプッシュしたい場合--mirror
BFAR

18

受け入れられた答えは正しくありません、または少なくとも私にとってはうまくいきませんでした。リモートリポジトリも指定する必要がありました。例:

git push origin --all

リモートの指定は、アップストリームが設定されていない場合にのみ必要です。
aross

複数のリモートが追加されている場合はリポジトリが必要だと思います($git remote -v
マイケル

2
ローカルブランチとリモートブランチ間のトラッキングを設定するには、-uを追加できます。 git push -u origin --all
Drenai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.