Upstream als schädlich bezeichnet
Leider gibt es eine andere Verwendung von "Upstream", auf die sich die anderen Antworten hier nicht beziehen, nämlich die Eltern-Kind-Beziehung von Commits innerhalb eines Repos. Scott Chacon im Pro Git-Buch ist dafür besonders anfällig, und die Ergebnisse sind unglücklich. Imitieren Sie diese Art zu sprechen nicht.
Zum Beispiel sagt er von einer Zusammenführung, die zu einem schnellen Vorlauf führt, dass dies geschieht, weil
Das Commit, auf das der Zweig zeigt, in dem Sie zusammengeführt haben, war direkt vor dem Commit, auf dem Sie sich befinden
Er möchte sagen, dass Commit B das einzige Kind des einzigen Kindes von ... des einzigen Kindes von Commit A ist. Um B mit A zusammenzuführen, reicht es aus, den Verweis A zu bewegen, um auf Commit B zu zeigen. Warum diese Richtung sollte eher als "stromaufwärts" als als "stromabwärts" bezeichnet werden, oder warum die Geometrie eines solchen reinen geraden Graphen "direkt stromaufwärts" beschrieben werden sollte, ist völlig unklar und wahrscheinlich willkürlich. (Die Manpage für git-merge
erklärt diese Beziehung viel besser, wenn sie besagt, dass "der aktuelle Zweigkopf ein Vorfahr des genannten Commits ist". So etwas hätte Chacon sagen sollen.)
Tatsächlich scheint Chacon selbst später "Downstream" zu verwenden, um genau dasselbe zu bedeuten, wenn er davon spricht, alle untergeordneten Commits eines gelöschten Commits neu zu schreiben:
Sie müssen alle Commits nach 6df76 neu schreiben, um diese Datei vollständig aus Ihrem Git-Verlauf zu entfernen
Grundsätzlich scheint er keine klare Vorstellung davon zu haben, was er unter "Upstream" und "Downstream" versteht, wenn er sich auf die Geschichte der Commits im Laufe der Zeit bezieht. Diese Verwendung ist also informell und nicht zu fördern, da sie nur verwirrend ist.
Es ist völlig klar, dass jedes Commit (außer einem) mindestens einen Elternteil hat und dass Eltern von Eltern somit Vorfahren sind; und in der anderen Richtung haben Commits Kinder und Nachkommen. Dies ist eine akzeptierte Terminologie und beschreibt die Richtwirkung des Diagramms eindeutig. Auf diese Weise können Sie sprechen, wenn Sie beschreiben möchten, wie Commits innerhalb der Diagrammgeometrie eines Repos miteinander in Beziehung stehen. Verwenden Sie "Upstream" oder "Downstream" in dieser Situation nicht lose.
[Zusätzlicher Hinweis: Ich habe über die Beziehung zwischen dem ersten Chacon-Satz, den ich oben zitiere, und der git-merge
Manpage nachgedacht , und mir fällt ein, dass der erstere möglicherweise auf einem Missverständnis des letzteren beruht. In der Manpage wird eine Situation beschrieben, in der die Verwendung von "Upstream" legitim ist: Ein schneller Vorlauf erfolgt häufig, wenn "Sie ein Upstream-Repository verfolgen, keine lokalen Änderungen vorgenommen haben und jetzt auf ein neueres aktualisieren möchten vorgelagerte Revision. " Vielleicht hat Chacon "Upstream" verwendet, weil er es hier auf der Manpage gesehen hat. In der Manpage befindet sich jedoch ein Remote-Repository. In Chacons zitiertem Beispiel für den schnellen Vorlauf gibt es kein Remote-Repository, nur ein paar lokal erstellte Zweige.]