То, что вы хотите сделать, выполняется простым ветвлением в git.
От хороший ответ StackOverflow от JaredPar :
Стеллаж - это способ сохранить все изменения на вашем ящике без регистрации. Изменения сохраняются на сервере.
Это аналогично фиксации ветки и отправке ее на сервер в git.
Как это сделать:
Допустим, вы работаете над ветвью "master" и решили внедрить функцию X. Вы хорошо ее освоили, но затем ваш начальник сказал, что функция Y должна быть реализована как можно скорее. Фил в следующем кубе над добровольцами, чтобы закончить функцию X, пока вы делаете функцию Y. Вот что вы делаете:
Создайте новую ветку и переключитесь на нее:
$ git checkout -b feature-x
Передайте ваши изменения:
$ git add filethatyouchanged.cc
$ git commit -m 'partial implementation of feature X'
Переместите его на сервер, который видит Фил:
$ git push origin feature-x
Вернитесь в основную ветку (которая не изменилась):
$ git checkout master
Вы также можете заранее создать новую ветвь для функции Y:
$ git checkout -b feature-y
Фил теперь может снять вашу функцию X и выбрать, где вы остановились:
phil$ git fetch origin
phil$ git checkout -t origin/feature-x