767 Stimmen

Git für Pull und Push aller Zweige einrichten

Ich möchte standardmäßig alle Zweige, einschließlich der neu erstellten, pushen und ziehen.

Gibt es eine Einstellung, die ich dafür festlegen kann?

Ansonsten, wenn ich lokal einen neuen Zweig hinzufüge und ihn vom Server abrufen möchte, wie kann ich das am einfachsten tun?

Ich habe eine neue Verzweigung mit dem gleichen Namen erstellt und versucht zu ziehen, aber es funktioniert nicht. Er fragt mich nach der gesamten Remote-Konfiguration des Zweigs. Wie stelle ich sie ein.

5 Stimmen

"und versucht zu ziehen, aber es funktioniert nicht". Details bitte. Zeigen Sie uns, welchen Befehl Sie versucht haben zu verwenden.

1voto

Dheeraj Bhaskar Punkte 17881

Lösung ohne Hardcoding origin in der Konfiguration

Verwenden Sie Folgendes in Ihrem weltweit gitconfig

[remote]
    push = +refs/heads/*
    push = +refs/tags/*

Dies verschiebt alle Zweige und alle Tags

Warum sollten Sie NICHT hardcodieren origin in der Konfiguration?

Wenn Sie hart kodieren:

  1. Am Ende werden Sie mit origin als Remote in allen Repos. Sie werden also nicht in der Lage sein, den Ursprung hinzuzufügen, sondern Sie müssen set-url .
  2. Wenn ein Werkzeug eine Fernbedienung mit einem anderen Namen erstellt, wird push all config nicht übernommen. Dann müssen Sie die Fernbedienung umbenennen, aber das funktioniert nicht, weil origin existiert bereits (ab Punkt 1), nicht vergessen :)

Das Abrufen wird bereits von modernem Git erledigt

Wie in der Antwort von Jakub Narebski:

Mit modernem Git holt man immer alle Zweige (als Remote-Tracking-Zweige in den refs/remotes/origin/*-Namensraum

1voto

keginx Punkte 11

Fügen Sie Ihr neues entferntes Repository hinzu und der letzte Schritt schließt den HEAD-Zweig aus, wenn Sie pushen

git clone <url_of_old_repo>
cd <name_of_old_repo>
git remote add new-origin <url_of_new_repo>
git ls-remote . | grep 'refs/remotes/origin/' | grep -v 'HEAD' | awk -F 'origin/' '{print $2}' | xargs -i git push -f new-origin  --tags refs/remotes/origin/{}:refs/heads/{}

0voto

mohsen Punkte 3865

Fügen Sie zunächst das entfernte Git zu Ihrem Loacl hinzu mit

git remote add remote_name remote_address

und danach müssen Sie nur noch den folgenden Befehl ausführen

git push --all remote_name

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X