2015-01-28 5 views
8

Ich habe zwei Zweige 'Master' und 'entwickeln', ich erstellen einen neuen Zweig von Master, 'Hotfix-1' und dann füge ich 'Hotfix-1' zurück zum Master mit ;Git Warnung: refname 'xxx' ist mehrdeutig

git checkout master 
git merge --no-ff hotfix-1 

Erstellt ein Tag für diesen Punkt;

git tag -a hotfix-1 -m "" 

und dann wechselte ich zurück zu entwickeln Zweig von Master und fusionieren "Hotfix-1" mit;

git checkout develop 
git merge --no-ff hotfix-1 

nach ‚Hotfix-1‘ Verschmelzung zu entwickeln ich bin immer „Warnung: refname‚Hotfix-1‘ist mehrdeutig“ Nachricht und es erfolgreich ist meine Änderungen fusionierenden zu entwickeln .. soll ich sich um irgendetwas sorgen?

bearbeiten

git show-ref --heads --tags 

d97bfc563749918799d4659c43f7bffd29cf4d60 refs/heads/develop 
594ea85c94f8321d372779ed3dbd5df07bdb059b refs/heads/master 
ffc897f8ab19510d5ff4c67969d0f0cb97d1c4f3 refs/tags/beta-1.0 
490a8c80ecec70fd2268aa0c2ad7a9beb6bf491c refs/tags/beta-1.1 
644adadb43744ad1d2e0f13fc37abb6906520f8f refs/tags/hotfix-1.0.1 
4c49e8d9ddc8d601ed794f307e1c29acfc84b31b refs/tags/release-1.0 
+1

Was die Ausgabe von 'git show-ref --heads ist --tags'? –

+0

@ EnricoCampidoglio hey, danke für dein Interesse; Ich bearbeite meine Frage mit der Ausgabe –

+0

Ich denke, ich überspringe einen Schritt nach dem Zusammenführen von Master Ich erstelle ein Tag mit "Git-Tag -a Hotfix-1 -m" "" –

Antwort

11

Von Ihrer ursprünglichen Frage sieht es aus wie Sie einen Tag und eine Niederlassung hotfix-1 genannt haben. Natürlich sind ihre tatsächlichen Namen refs/tags/hotfix-1 bzw. refs/heads/hotfix-1, aber Git erlaubt es Ihnen, die Kurzschrift zu verwenden, die in diesem Fall mehrdeutig ist, da Git Ihnen erlaubt, jedes committish in der git merge-Anweisung zu verwenden. Als ich dieses Szenario getestet habe, hat Git das Tag und nicht die Verzweigung zusammengeführt.

Beim Betrachten Ihrer git show-ref --heads --tags Ausgabe ist es jedoch unklar, da dort nur ein Tag mit dem Namen hotfix-1.0.1, und keine Verzweigung mit dem gleichen Namen. Es sieht so aus, als hätten Sie die Dinge später geändert.

+0

Oh danke, nach der Zusammenführung Hotfix-1 Zweig zu entwickeln, ich löschte die Zweig, das ist der Grund, warum Ausgabe "Hotfix-1" nicht anzeigt. Bu, ich habe das Problem. Nun, ich habe tag statt zweig paar fo mal fusioniert dann: /, gibt es irgendein problem darüber? –

+0

@Nandekore Nun, Sie werden den Merge zusammenführen, nicht den ursprünglichen Zweig. Dies kann zu zusätzlichen Commits führen, die Sie nicht möchten. –

1

Hier ist ein Beispiel, wo die Annahme von Joseph über das, was passiert ist, tatsächlich passiert ist.

git merge BranchyBranch_r2.1 warning: refname 'BranchyBranch_r2.1' is ambiguous.

Es tatsächlich sowohl einen Tag und ein Zweig des gleichen Namen (BranchyBranch_r2.1), und obendrein, versuchte jemand das Problem durch Aliasing den Tag zu lindern, die den Zweig dupliziert.

git show-ref --heads --tags ac729d902578378557f9f20dbd415c5748a23230 refs/heads/BranchyBranch_r2.1 9f3d242e03837fd33f8355005e9edbee89367bef refs/heads/develop 5995987876e6a2315544bd774b546ed561f78a53 refs/heads/master df26c94be018268e2897807c0750b5c66150750b refs/tags/BranchyBranch_r2.1 df26c94be018268e2897807c0750b5c66150750b refs/tags/BranchyBranch_r2.1Tag

Wenn Sie durch den voll qualifizierten Namen der Niederlassung beziehen, gehen Sie dann.

git merge refs/heads/BranchyBranch_r2.1