2014-09-30 4 views
9

zum Schieben zu bitbucket.Unterschied zwischen Herkunft/Branch_name und Branch_name?

Wenn ich: git push origin origin/branch_name meine commits werden nicht gedrückt.

Total 0 (delta 0), reused 0 (delta 0) 

Wenn ich git push origin branch_name tue meine Commits gedrückt:

Counting objects: 160, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (13/13), done. 
Writing objects: 100% (20/20), 2.10 KiB | 0 bytes/s, done. 
Total 20 (delta 6), reused 0 (delta 0) 

so etwas ist der Ursprung/bedeutet vor dem branch_name? Und warum ist das wichtig?

Antwort

15

Man muss bedenken, dass es verschiedene Arten von Zweigen ist:

  • (Rein) lokale Zweige, dh Zweigen Sie zu begehen,
  • Branchen, die in einem Remote-Repository leben, aus Mangel an einem besseren Begriff. Sie können das Remote-Repository unter einem Remote-Namen wie origin kennen. Aus der Sicht dieses Repositorys ist ein solcher Zweig jedoch lokal. Willkommen bei der verteilten Versionskontrolle! :)
  • Fernüberwachung Filialen. Auch einfach Remote-Filialen genannt, wie in der Pro Git book, aber ich finde diesen Satz verwirrend; Remote-Tracking-Zweig ist genauer. Sie sind spezielle lokale Zweigstellen, deren einziger Zweck darin besteht, den Status Zweige zu reflektieren, die zum Zeitpunkt Ihrer letzten Kommunikation mit dem Server in einem Remote-Repository leben. Insbesondere können Sie keine Zweige dieses Typs festlegen. Hier

, branch_name ist ein lokaler Zweig, während origin/branch_name ist eine Fernverfolgung Zweig; es spiegelt den Zustand des entsprechenden -Zweigs wider, der in origin lebt.

Gleich nach

git fetch 

die Fernverfolgung Zweig origin/master läuft und die entsprechenden Zweig, der in origin leben sollte perfekt synchron sein.Es sollte nicht überraschen, dann sein, dass

git push origin origin/branch_name 

der nichts drücken: Sie im Wesentlichen zu schieben Sachen versucht, die in der Herkunft des entsprechenden Zweig bereits vorhanden ist, die in origin leben.

Allerdings, wenn Ihr lokalen Zweig, branch_name, voraus durch eine oder mehrere Commits ist,

enter image description here

dann läuft

git push origin branch_name 

werden die Commits in branch_name enthalten schieben, aber nicht in der Branche, die in origin leben:

enter image description here

0

Herkunft ist, was ist Github remote auf gespeicherte

ohne Herkunft ist, was auf Ihrem Computer lokal gespeichert ist

, wenn Sie 1. verpflichten Sie sich lokal an Ihrem Computer

sind begehen, wenn Sie Herkunft Zweignamen drücken Sie drängen auf gitHub

+2

wo kommt github in dieses Spiel? 'git' erlaubt viele entfernte Server und github ist nur eine davon. –

0
  • origin/branch_name einen Zweig auf dem entfernten Rechner wird
  • nur branch_name ist ein Zweig auf dem lokalen Rechner
2

einen grafischen Baum-Viewer (wie gitk --all) werden Ihnen zeigen, dass origin/mybranch und mybranch könnten abweichen.

origin ist nur der Standard Name für einen geklonten Fern, die (in Ihrem Fall) mybranch einen Zweig enthält (wie Ihr lokales Repository)

so, wenn Sie fragen origin/mybranch-origin zu schieben, Sie synchronisieren die origin Fernbedienung mit sich selbst, daher tut es nichts (zum Glück ist die Fernbedienung immer synchron mit sich selbst).

Der Name origin ist willkürlich und könnte beim Klonen mit dem Flag --origin gesetzt worden sein.

Verwandte Themen