Як відповіли інші, з Git вам не варто піклуватися про незакінчений код у ваших особистих відділеннях. Однак, якщо ви з якоїсь причини дійсно дуже не хочете, щоб ваша незавершена робота коли-небудь торкнулася головного репо, ви можете використовувати розподілену природу Git!
Існує простий інструмент з назвою, git bundle
який допоможе вам легко передавати зміни без центрального сховища. По-перше, клонуйте репо:
git clone https://github.com/octocat/Spoon-Knife.git working_copy_1
cd working_copy_1
внести деякі зміни та скористатись тимчасовою філією:
git checkout -b tmp_branch
git commit -a -m "temporary changes"
Тепер, пакет їх змін:
git bundle create ../tmp.bundle tmp_branch
Тепер у вас є файл пакету, який ви можете відправити на вашу нову машину. Як ви його там використовуєте? Створимо нову робочу копію:
cd ..
git clone https://github.com/octocat/Spoon-Knife.git working_copy_2
cd working_copy_2
нам потрібно ставитися до нашого пакету як до іншого віддаленого, щоб ми могли отримати зміни з нього
git remote add tmp ../tmp.bundle
git fetch tmp
оскільки вся суть полягала в перенесенні змін, не залишаючи сліду, ми хочемо вкласти їх у робочу копію, щоб втратити тимчасовий комітет:
git merge tmp/tmp_branch --squash
і залишається лише видалити тимчасовий пульт:
git remote remove tmp
ВІОЛА! Зміни були перенесені на нову робочу копію, не залишаючи сліду ні філії, ні комісії!
Але насправді - цей процес досить тривалий і громіздкий. Це Git, а не SVN - насправді не повинно бути причин не заштовхувати свою персональну гілку до центрального репо.