Ich habe ein Repository, das ich in Bitbucket und GitHub verschieben möchte. Es ist wichtig, dass mein Repository von beiden gehostet wird.
Gibt es eine Möglichkeit, dies in Git zu tun?
Ich habe ein Repository, das ich in Bitbucket und GitHub verschieben möchte. Es ist wichtig, dass mein Repository von beiden gehostet wird.
Gibt es eine Möglichkeit, dies in Git zu tun?
Antworten:
Sie können mit git mehrere Remote-Repositorys verwenden. Aber Sie müssen, glaube ich, zwei Ihrer Fernbedienungen separat verwenden.
Wenn Ihr Projekt derzeit beispielsweise auf github verweist, können Sie Ihr aktuelles Remote-Repository in Folgendes umbenennen github
:
$ git remote rename origin github
Sie können dann ein weiteres Remote-Repository hinzufügen, z. B bitbucket
.:
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
Um Änderungen an der entsprechenden Verzweigung auf Github oder Bitbucket vorzunehmen, können Sie Folgendes tun:
$ git push github HEAD
$ git push bitbucket HEAD
Die gleiche Regel gilt für das Ziehen: Sie müssen angeben, von welcher Fernbedienung Sie ziehen möchten:
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
Datei ist der Schlüssel zum Erreichen dieses Setups. Fügen Sie ein Host github.com
und ein hinzu, Host bitbucket.org
um zu identifizieren, welche IdentityFile
verwendet werden sollen. Dann erhalten Sie keine Fehler, denen die Berechtigung verweigert wurde, wenn Sie versuchen, zwischen Bitbucket und Github hin und her zu wechseln. Hoffe das hilft jemandem.
Ja, das kannst du machen. Sie müssen nicht zweimal, sondern nur einmal pushen, um auf beide Remote-Repositorys zu pushen. Ich hatte das gleiche Problem zuvor und schrieb hier, wie es geht. Git: Push to / Pull von Github und Bitbucket
Ein paar EINFACHE Lösungen.
Dies ist der einfachste Weg, um den Kopf herumzukriegen, aber der größte Aufwand, um ihn aufrechtzuerhalten.
Wir beginnen mit dem Hinzufügen unserer neuen Fernbedienung:
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
Einfach nein? Außer natürlich, dass wir jedes Mal, wenn wir Änderungen vornehmen, sowohl auf unseren ursprünglichen „Ursprung“ als auch auf unseren neuen entfernten „Bitbucket“ zurückgreifen müssen:
$ git push origin master
$ git push bitbucket master
Kein massiver Overhead, aber ich bin mir sicher, dass es mit der Zeit krachen wird. Oder Sie können einen Alias gpob = "Git Push Origin Master & Git Push Bitbucket Master" erstellen.
Mit dieser Methode fügen wir unserem vorhandenen Remote-Ursprung eine zusätzliche URL hinzu:
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
Viel weniger Aufwand!
Natürlich hat der Silberstreifen eine Wolke, und in diesem Fall können wir zwar gleichzeitig auf mehrere URLs pushen, aber nur vom ursprünglichen „Ursprung“ abrufen (Sie können dies ändern, aber das ist für diesen Beitrag nicht möglich ).
Um zu sehen, von welcher Fernbedienung abgerufen wird:
$ git remote -v show
Ich habe auch darüber gebloggt .