2013-02-22 9 views
17

Ich möchte lokale Zweigstelle basierend auf anderen Zweig erstellen. Zum Beispiel Typ I:Erstellen Git Zweig basierend auf einem anderen Zweig

git checkout -b feature1 release1.1.3

Danach erhalte ich:

fatal: git checkout: updating paths is incompatible with switching branches.

Was ist das Problem mit diesem?

+0

Does 'release1.1.3' existieren? Siehe diese Frage http://stackoverflow.com/questions/945654/git-checkout-on-a-remote-branch-does-not-work. –

Antwort

13

Um einen Zweig basierend auf einem anderen Zweig zu erstellen, besteht der einfachste Weg darin, zuerst den Basiszweig auszuprobieren und dann einen neuen Zweig von dort zu erstellen. Wenn ich deine Frage richtig verstehe, ist das genau das, was du machen willst.

Jetzt, da Sie die -b Flagge in Ihrer Verzweigung verwenden, haben Sie möglicherweise Arbeitsänderungen, die Sie behalten möchten. Wenn das der Fall ist, sollten Sie sie in den Stash schieben, den Basiszweig überprüfen, den neuen Zweig erstellen und den Stash freigeben.

4

Sie meinten git branch feature1 release1.1.3 vorausgesetzt, Sie möchten, dass ein Zweig mit dem Namen feature1 auf dem release1.1.3 commit basiert. Was Sie dort aufgerufen haben, sollte auch funktionieren, aber Sie haben auch einen tatsächlichen Ordner namens 'release1.1.3' in Ihrem Arbeitsbaum und Git verwirrt sich darüber, ob Sie den Zweig/Tag oder den Ordner meinen.

Sie könnten versuchen, geben Sie nur die tatsächliche Commit-ID von release1.1.3.

10

Tun Sie zuerst git pull, um sicherzustellen, dass alle lokalen Zweigstellen auf dem neuesten Stand sind. Und dann kannst du den Zweig schneiden.

Die Syntax ist

$ git checkout -b <branch> --track <remote>/<branch> 

oder

$ git checkout <remote>/<branch> -b <branch> 
+5

'git checkout -b ' ist gültig ist gut, was aussieht wie das OP hat, oder nicht? –

+0

@FelixKling danke, ich habe gerade meinen Post aktualisiert. – zsong

3
git branch <new-branch-name> <existing-branch-name> 
Verwandte Themen