2016-09-20 2 views
0

Ich bin ein Neuling in Git und derzeit verschiedene Kombinationen auszuprobieren, um Git zu verstehen.Git Fetch/Pull Verwirrung

Ich habe ein Repository mit Zweig namens "dev". Jetzt habe ich mein lokales Gerät mit der Fernbedienung synchronisiert. Dann habe ich die Fernbedienung direkt von Github gewechselt.

Jetzt, wenn ich

git fetch origin dev:dev 

verwende dann erhalte ich einen Fehler

fatal: Refusing to fetch into current branch refs/heads/dev of non-bare repository 

jedoch der folgende Pull-Befehl funktioniert

git pull origin dev 

In eines des Stackoverflow beantworten war es erwähnt, dass fetch gefolgt von merge gleichzusetzen war mit git pull.

Wenn es so ist, warum diese Diskrepanz?

Frage-Link: understanding git fetch then merge

PS: Die Antwort von Link unten in den Kommentaren vorgeschlagen korrekt ein. Aber ich frage mich, dass

holt aus allen Zweigen einschließlich der aktuellen. Führen Sie dann, warum die Prüfung nur bei

git fetch origin master:master 

Ich bin nicht in der Lage, den Grund für diese Validierung zu verstehen. Jede Hilfe wird geschätzt.

Dank

+0

Eigentlich 'pull' eine Abkürzung für' fetch' + 'merge'. Aber 'dev: dev' Argumente machen da den Unterschied. Bitte werfen Sie einen Blick auf diese Antwort: http://StackOverflow.com/a/32561463/2104879 – mertyildiran

+0

Hallo Mertyildiran, Danke, dass Sie mir geholfen haben. Die Antwort, die Sie vorgeschlagen haben, ist die richtige. –

Antwort

0

fatal: Verweigern in Stromzweig refs/heads/dev nicht-bare Repository bedeutet Dieser Fehler

im Allgemeinen zu holen, dass Sie einen Zweig sind zu holen, die ‚doesn t haben eine entfernte Niederlassung. Ich mache hier einige Annahmen, die Sie aus dem Repo origin holen und die letzten Änderungen von dev in Ihre lokale Niederlassung zusammenführen möchten. Wenn dies der Fall ist, dann möchten Sie folgendes ausprobieren:

git fetch origin 
git merge origin/dev