Was Sie tun möchten, wird mit einer einfachen alten Verzweigung in Git erreicht.
Aus einer schönen StackOverflow-Antwort von JaredPar :
Mit Shelving können Sie alle Änderungen auf Ihrer Box speichern, ohne einchecken zu müssen. Die Änderungen bleiben auf dem Server erhalten.
Dies ist analog zum Festschreiben an einen Zweig und zum Übertragen auf einen Server in Git.
Wie es geht:
Angenommen, Sie arbeiten am Zweig "Master" und entscheiden sich für die Implementierung von Feature X. Sie haben einen guten Start, aber dann sagt Ihnen Ihr Chef, dass Feature Y so schnell wie möglich implementiert werden muss. Phil im nächsten Würfel über Freiwillige, um Feature X zu beenden, während Sie Feature Y ausführen. Folgendes tun Sie:
Erstellen Sie einen neuen Zweig und wechseln Sie zu diesem:
$ git checkout -b feature-x
Übernehmen Sie Ihre Änderungen:
$ git add filethatyouchanged.cc
$ git commit -m 'partial implementation of feature X'
Schieben Sie es auf einen Server, den Phil sehen kann:
$ git push origin feature-x
Gehen Sie zurück zum Hauptzweig (der sich nicht geändert hat):
$ git checkout master
Möglicherweise möchten Sie auch proaktiv einen neuen Zweig für Feature Y erstellen:
$ git checkout -b feature-y
Phil kann jetzt Ihre Feature-X-Arbeit herunterziehen und dort weitermachen, wo Sie aufgehört haben:
phil$ git fetch origin
phil$ git checkout -t origin/feature-x