2016-04-05 20 views
2

Ich habe eine Remote-Niederlassung in Git genannt Entwicklung und auch lokale Entwicklung Zweig. I Aktualisiert können 3 Dateien sagen:git nur einige geänderte Dateien hinzufügen

git status 
modified file1 
modified file2 
modified file3 

jetzt möchte ich hinzufügen und nur file1 zu begehen und schieben Sie es auf Remote-Zweig (file2 und file3 wird später hinzugefügt werden, aber jetzt nicht mehr). Ich versuche, es zu schieben, aber git erlaubt es nicht, zu drücken, weil entfernter Kopf voraus ist als mein Einheimischer. Dann habe ich versucht, git fetch und git rebase zu machen, aber dann sagt Git, dass ich nicht geordnete Dateien habe. Git schlug vor, sie zu verstecken. Ich bin neu in Git und was ich bisher weiß ist git stash ist die Arbeitsänderungen im Falle des Umschaltens einer anderen Filiale zu speichern. In meinem Fall wechsele ich nicht meine Filiale. Ist es sicher, mit git stash fortzufahren? oder gibt es andere Wege? Ich schätze deine Erklärungen.

Antwort

1

Vor Push, müssen Sie Ihre Änderungen zu übernehmen. Es ist lokal gemacht von:

#add files to specific commit 
git add file1 

# commit added files 
git commit -m "init commit" 

# stash file2 file3 
git stash 

# now, when working dir is clean you can safly pull updates from remote repo 
git pull 

# push your changes (your commit) to remote repo 
git push origin master 

#return file2 file3 changes 
git stash apply 
+0

Es wurde festgestellt, dass er zu diesem Zeitpunkt nicht alle Dateien übertragen wollte. Ich denke, Stash wäre hier eine bessere Option ... –

+0

Um das OP zu beantworten, können Sie die Add-Zeile ändern, um nur die eine erforderliche Datei einzuschließen, der Rest der Befehle sollte genau das tun, was das OP wollte. – CyberneticianDave

+0

was ich tun möchte, ist Rabase, aber mein Arbeitsverzeichnis ist nicht sauber, weil ich 2 Dateien, die ich geändert habe, nicht hinzugefügt habe, darum frage ich nach dem Statch? – Lakshi

0

Sie können Dateien selektiv bereitstellen.

Zum Beispiel, lassen Sie uns in der ersten sagen verpflichten Sie nur file1 und drücken nur das benutzen wollte:

git add file1 
git commit -m "first bit of changes" 
git push 

Mit Git können Sie Dateien auf einem sehr granularen Ebene Bühne, die Sie Ihre Commits Handwerk ermöglicht in ein logischer Weg.

Wie bei dem anderen Teil der Frage ...

ich versuche, es zu schieben, aber git darf nicht schieben, weil Fern hed als mein lokalen

ahed ist Ja Dies ist definitiv ein guter Anwendungsfall für stash.

tun:

git stash 
git pull 
git stash pop 
+1

Würde nicht hier ausreichen, ohne einen Reset durchführen zu müssen? – CyberneticianDave

+0

Ja, 'Pull' würde fast sicher funktionieren. War nur nicht sicher, ob das OP hatte seine Tracking-Filialen korrekt eingerichtet ... –

+0

@CybernetianDave Ich ging voran und änderte es in 'ziehen' –

Verwandte Themen