Frage

Ich finde Git -Dokumente in Bezug auf dieses Problem sehr kryptisch. Ich möchte eine einfache Sache tun, aber es scheint, dass es überhaupt nicht einfach ist.

Ich habe die folgende Situation:

$ git remote -v
origin  git://192.168.0.49/mnt/repos
stick   /mnt/titanium/podaci/repos

ich kann nutzen Git ziehen um aus Herkunft zu holen und zu verschmelzen, und das funktioniert einwandfrei:

$ git pull
Already up-to-date.

Ich kann von ziehen Stock so was:

$ git pull stick master
Already up-to-date.

Wenn ich jedoch von abreihe Stock ohne das Meister Teil, ich bekomme diese Nachricht:

$ git pull stick
From /mnt/titanium/podaci/repos
 * [new branch]      su2009  -> stick/su2009
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details on the refspec.

If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:

    branch.master.remote = <nickname>
    branch.master.merge = <remote-ref>
    remote.<nickname>.url = <url>
    remote.<nickname>.fetch = <refspec>

See git-config(1) for details.

Einige Dinge verwirren mich hier. Was macht "Ihre Konfigurationsdatei"meine hier? Welche Datei soll ich bearbeiten und was genau soll ich eingeben? Was ist Spitzname in diesem Fall?

Ich würde erwarten, dass das, was ich zu erreichen versuche, sehr häufig ist, aber ich konnte mit einem Beispiel keine direkte Antwort finden.

War es hilfreich?

Lösung

Was bedeutet "Ihre Konfigurationsdatei" hier?

Die Konfigurationsdatei Ihres Repos, gefunden bei .git/config an der Wurzel deines Repo. (Es gibt auch eine globale Konfigurationsdatei pro Benutzer unter ~/.gitconfig, aber Sie möchten dort keine repospezifischen Einstellungen einstellen.)

In welcher Datei soll ich bearbeiten und was genau soll ich eingeben?

Du kannst den ... benutzen git config Programm zum Schreiben von Konfigurationsinformationen, anstatt sie manuell einzugeben. Wenn Sie es jedoch manuell tun möchten, öffnen Sie sich einfach .git/config - Die Syntax ist ziemlich einfach.

Was ist der Spitzname in diesem Fall?

Der Spitzname ist in diesem Fall der Name der Fernbedienung - also "Stick". Sie müssen sich keine Sorgen um die machen remote.* Optionen, wie diese bereits eingerichtet wurden, aber Sie müssen die festlegen branch.* Optionen. Diese Optionen sagen Git, was bei a zusammengeführt werden soll git pull vom Stick.

Sagen Sie, Sie möchten den Meister von Stick bei einem verschmelzen git pull vom Stick. Sie können dies so tun:

# Sets stick as default remote for git pull.
# Note that origin will no longer be the default remote for git pull!
$ git config branch.master.remote stick

# Automatically merge in stick's master branch when doing a git pull
$ git config branch.master.merge refs/heads/master

Also jetzt, wenn du a machst git pull Ohne Remote- oder RefSpec -Informationen holt sie alle Zweige von Stick ab und verschmelzen in Sticks Master -Zweig. Beachten Sie, dass der Ursprung wird nicht Sei die Standard -Fernbedienung mehr; Um in den Master -Zweig von Origin zusammenzuarbeiten, müssen Sie verwenden git pull origin master.

Wenn Sie die Standard -Fernbedienung nicht ändern möchten, müssen Sie weiterhin einsetzen git pull stick master.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top