2010-11-21 9 views
2

Meine Frage ist das gleiche wie this one, aber die Antwort ist mir nicht klar. Ich habe zwei Git Repos A und B synchron (entsprechend den beiden Maschinen, an denen ich arbeite). Wenn ich anfange, in B zu arbeiten, würde ich normalerweise git fetch A machen (vorausgesetzt, das entfernte A in B zeigt auf Repo A). Aber ich möchte stattdessen von A zum entfernten Zweig A innerhalb von B wechseln können, wenn ich in A arbeite. Ich möchte sicher sein, dass es sicher ist, wegen der Warnungen, die zu einem nicht-leeren Repo führen. Meine Einstellungen (in der Datei A/.git/config) seien:"git push" macht das gleiche wie "git fetch" von der Fernbedienung

[remote "B"] 
fetch = +refs/heads/*:refs/remotes/B/* 
push = +refs/heads/*:refs/remotes/A/* 
url = ssh://<machine_B>/home/project/B 

Mit dieser Einstellung kann ich genau das gleiche Ergebnis mit diesen beiden Befehlen bekommen? :

  • in A: git push B
  • in B: git fetch A

Antwort

1

Ich fand die genaue Antwort auf meine Frage auf kerneltrap mail archive, von einem der wichtigsten Entwickler git. Also ja, beide Befehle sind gleichwertig.

1

Wenn Sie git push B in A tun, bereits Sie Refs in B aktualisieren (nur die, die Sie tatsächlich gedrückt), so dass eine nachfolgende git fetch A in B ist nicht erforderlich, um die spezifischen aktualisierten Refs zu aktualisieren.

+0

Ja, aber wenn ich zu Maschine B wechsle, kann ich zwischen den beiden Optionen wählen und sicherstellen, dass sie genau das gleiche Ergebnis haben (und dass das Drücken absolut sicher ist)? – rafak