2015-01-01 14 views
5

In meinem Repo habe ich einen Zweig master und einen Zweig new.! [Abgelehnt] Master -> Master (Nicht-Fast-Forward) auf einem neuen, aktuellen Zweig

Ich habe für eine Weile auf new gearbeitet, commits, und schiebt, wie ich gehe. Ich entschied mich jetzt, new abzuzweigen und es newest zu nennen. Also tat ich

git checkout -b "newest" 

und der Zweig wurde erfolgreich erstellt. Ich habe eine Datei hinzugefügt und angefangen, daran zu arbeiten. Ich habe meine Änderungen ein paar Mal übernommen.

aber wenn ich versuche zu origin, um es diesen neuen Zweig und meine Änderungen zu drücken, bekomme ich diesen Fehler:

C:\wamp\www\myproj>git push origin 
To https://github.com/Imray/Proj.git 
! [rejected]  master -> master (non-fast-forward) 
! [rejected]  new -> new (non-fast-forward) 
error: failed to push some refs to 'https://github.com/Imray/Proj.git' 
hint: Updates were rejected because a pushed branch tip is behind its remote 
hint: counterpart. Check out this branch and integrate the remote changes 
hint: (e.g. 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

So, wie es in der Anleitung angegeben, habe ich versucht git pull, aber dann habe ich:

There is no tracking information for the current branch. 
Please specify which branch you want to merge with. 
See git-pull(1) for details 

    git pull <remote> <branch> 

If you wish to set tracking information for this branch you can do so with: 

    git branch --set-upstream-to=origin/<branch> newest 

Ich stecke fest.

Wie schiebe ich meinen neuen Zweig und die Änderungen an github?

Antwort

2

Überprüfen Sie Ihre git config push.default. Es könnte auf "matching" sein, da es versucht, alle vorhandenen Zweige zu schieben.
Das war die default before Git 2.0+.

Ich würde empfehlen, es auf "simple" zu setzen, um nur den aktuellen Zweig zu schieben.

Das gesagt, um einen Zweig zu drücken, müssen Sie (für den ersten Druck) eine upstream branch einrichten.

Für einen Zweig nie gedrückt vor:

git push -u origin newest 

Für einen Zweig, der auf dem upstream repo tut existiert:

git branch --set-upstream-to=origin/master master 
git branch --set-upstream-to=origin/new new 

Dann eine git checkout master ; git pull would Arbeit.