2016-08-03 2 views
1

Stellen Sie sich das folgende Szenario vor:Woher wissen Sie, aus welchem ​​Zweig ein neu erstellter Zweig erstellt wird?

Ich erstellen eine Verzweigung von Master, und rufen Sie diese Branch1 und erstellen Sie ein anderes Commit für diesen Zweig (b). Dann erstelle ich einen anderen Zweig, ohne Branch1 mit Master zu verschmelzen, mit git checkout -b branch2.

A) Woher soll ich wissen, von welchem ​​Zweig, von welchem ​​Zweig2 aus arbeiten würde? Würde es automatisch die Verzweigung von der Hauptverzweigung oder von der Verzweigung a erstellen?

B) Wie würden Sie eine Verzweigung aus der Verzweigung erstellen, die der erste Teil nicht abgedeckt hat (dh wenn die Antwort auf den ersten Teil eine Verzweigung von Verzweigung1 erzeugt, wie erstellen Sie eine Verzweigung von Master/Viceversa?)

master --> a 
       \ 
       \ 
      branch1 --> b 

     (location of new branch?) 

Antwort

2

Git Zweig kommt standardmäßig von Ihrem aktuellen Zweig (eigentlich HEAD).

Wenn Sie angeben möchten, wo es Zweige aus, geben den Start

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [ <start-point> ] 
0

Sie erstellen keinen Zweig von einem Zweig, sondern von einem Commit. Und standardmäßig ist es das Commit, das Sie gerade ausgecheckt haben. Wenn Sie ein anderes Commit wünschen, geben Sie es einfach als Argument für den branch Befehl, wie Sie in seiner Dokumentation nachlesen können.

Btw. Um den Kopf darüber zu wickeln, bedenken Sie nur die Verzweigungen und Tags, die Sie an ein beliebiges Commit kleben, denn genau das sind Zweige und Tags in Git und nicht mehr. Sie können das Post-It jederzeit abziehen und es auf ein anderes Commit setzen. Bei Verzweigungen geschieht dies automatisch, wenn Sie diesen Zweig ausgecheckt haben und ein neues Commit erstellen.

Verwandte Themen