Wie andere geantwortet haben, sollten Sie sich bei Git nicht um unvollständigen Code in Ihren persönlichen Zweigen kümmern. Wenn Sie jedoch aus irgendeinem Grund wirklich wirklich wirklich nicht möchten, dass Ihre unvollendete Arbeit jemals das Hauptrepo berührt, können Sie die verteilte Natur von Git nutzen!
Es gibt ein einfaches Tool mit dem Namen git bundle
, mit dem Sie Änderungen problemlos ohne ein zentrales Repository weitergeben können. Klonen Sie zuerst das Repo:
git clone https://github.com/octocat/Spoon-Knife.git working_copy_1
cd working_copy_1
Nehmen Sie einige Änderungen vor und weisen Sie sie einem temporären Zweig zu:
git checkout -b tmp_branch
git commit -a -m "temporary changes"
Nun bündeln Sie die Änderungen:
git bundle create ../tmp.bundle tmp_branch
Jetzt haben Sie eine Bundle-Datei, die Sie an Ihren neuen Computer senden können. Wie benutzt du es dort? Erstellen wir eine neue Arbeitskopie:
cd ..
git clone https://github.com/octocat/Spoon-Knife.git working_copy_2
cd working_copy_2
Wir müssen unser Bundle wie eine andere Fernbedienung behandeln, damit wir die Änderungen daraus abrufen können
git remote add tmp ../tmp.bundle
git fetch tmp
Da der springende Punkt darin bestand, die Änderungen spurlos zu übertragen, möchten wir sie in die Arbeitskopie quetschen, um das temporäre Commit zu verlieren:
git merge tmp/tmp_branch --squash
und alles, was übrig bleibt, ist, die temporäre Fernbedienung zu entfernen:
git remote remove tmp
VIOLA! Die Änderungen wurden in die neue Arbeitskopie übernommen, ohne eine Spur von Verzweigung oder Festschreibung zu hinterlassen!
Aber wirklich - dieser Prozess ist ziemlich langwierig und umständlich. Dies ist Git, nicht SVN - es sollte wirklich keinen Grund geben, Ihre persönliche Filiale nicht auf das zentrale Repo zu verlagern.