2016-08-08 23 views
-1

... was wahrscheinlich ist, weil ich es falsch verwende.Git Pull funktioniert nicht wie erwartet

Szenario: Ich habe ein lokales Repository und ein Remote-Repository (namens Staging). Jetzt entwickelte ich auf meinem lokalen Repository und Committed und schob es zu meinem Remote-Repository. Dann habe ich in meinem REMOTE-Repository eine Datei "newfiletest" hinzugefügt. Ich habe erwartet, dass wenn ich lokal "git pull staging master", sollte es die "newfiletest" -Datei herunterladen, was es nicht tut.

Ich hoffe, Sie bekommen es: P Ich bin ein bisschen neu zu git.

+0

Haben Sie die neue Datei in Ihrem Remote-Repository gespeichert? – Ryan

+0

Es würde helfen, wenn Sie 'git remote show origin' und' git branch -av' anzeigen. – Christoph

Antwort

0

So haben Sie einige Arbeit auf Ihrem lokalen Repository und dann haben Sie

git add -A 
git commit -m "Embrace my epic programming skills" 

Dann Sie sich entschieden Sie es an den Remote-Upstream schieben wollen, so dass Sie

git remote add <remote_name> <url> 

tat und dann

git push -u <remote_name> <branch> 

Git fragt Sie dann nach Ihrem Benutzernamen und Passwort aus Gründen der Authentifizierung und poof! Du hast deine Sachen stromaufwärts geschoben.

Jetzt entscheiden Sie sich, eine neue Datei (ex. .gitignore, readme.md etc.) unter Git Hub zu erstellen. Sie tun so, und dann

git pull 

laufen Dies sollte Ihre Änderungen auf Ihrer lokalen repoistory

+0

Nicht genau. Ich habe Git Hub nicht verwendet. Ich habe ein leeres Repository auf einem Remote-Server mit "git init --bare" erstellt. Und dieses Repository habe ich lokal als "Staging" hinzugefügt. Also auf diesem Remote-Server habe ich eine neue Datei "newtestfile" erstellt. Das wird nicht in mein lokales Repository heruntergeladen, wenn ich lokal "git pull staging master" mache. – SVARTBERG

+0

Sie haben also Ihren eigenen Server konfiguriert, auf dem Sie Ihre eigenen Git-Repositories hosten werden? : s Das obige ist ein Beispiel mit * Git Hub * ich würde versuchen, ein Gefühl für sie zu bekommen, bevor Sie weiter fortgeschritten und richten Sie Ihren eigenen Server –

+0

Nun ... es ist eigentlich nur ein Webserver, wo Git installiert ist und einen Ordner, den ich "git init --bare" ausgeführt habe. Und ich sehe den Unterschied zu deinem Beispiel nicht wirklich. Ich mache eigentlich genau dasselbe. – SVARTBERG

0

Das Problem ist, holen und fusionieren, dass, wenn Sie ein auf Ihren Server gemacht begehen, git nicht in der Lage sein zu verfolgen diese neue Datei. Es reicht nicht aus, eine Datei in den Ordner zu legen, Sie müssen auch einen Commit durchführen. Ich bin mir nicht sicher, ob Sie direkt auf einen Server zugreifen können, da ich es nie ausprobiert habe, aber ich sehe nicht, warum es nicht funktionieren würde. Verwenden Sie git add und git commit auf dem Server, um die neue Datei zu einem Teil Ihres Repositorys zu machen.

+0

Ich verstehe. Gut. Es würde mein tatsächliches Problem nicht lösen. Ich benutze es als Staging-Server für meine Kunden, um den Fortschritt zu zeigen. Wenn ich meine lokale Arbeit auf den Server verschiebe, werden die Dateien durch einen Hook (Post-Receive) in ein bestimmtes Arbeitsverzeichnis eingefügt. Ich wollte sicher sein, wenn jemand etwas auf dem Server ändert. Ich wollte dann git ziehen um den aktuellen Stand des Servers zu bekommen. – SVARTBERG