Предполагая, что у вас есть доступ к Python-части уравнения , самый простой способ решить эту проблему - это сериализовать объект в некотором взаимно понимаемом формате.
В этом случае одной идеей было бы сериализовать байты в base64 (уникод, такой как UTF-8 или -16, может столкнуться с проблемами кодирования в зависимости от содержимого байтовой строки). Затем вы можете преобразовать эти байты base64 в UTF-8 , чтобы передать его обратно между программами.
Это выглядит (например):
base64.b64encode(pickle.dumps("Some data goes here")).decode("utf-8")
Что ж, решение было довольно простым, намекнули Пат Нотц и Бомбе.
#Make sure we're on the master branch
$ git checkout master
# Make a new branch to hold the work I've done
$ git branch old_master
# Save this branch on my remote repo (for backup)
$ git checkout old_master
$ git push origin old_master
# Reset my local master back to match the commit just before I started
# working on my new feature
$ git checkout master
$ git reset --hard 2aa93842342342
# Get it to be the same as my Central
$ git pull upstream master
# Now DELETE my master on my remote repo
$ git push origin :master
# And recreate it
$ git push origin master
# Branch created!
#* [new branch] master -> master
#
Теперь у меня есть две замечательные ветви: мастер и старый_мастер С мастером, являющимся копией моего Центрального, для исправлений в производстве, и old_master, хранящим всю работу, которую я сделал ранее!
Спасибо!
Что именно вы подразумеваете под
, я испортил [своего] своего хозяина и больше не могу от него отходить.
Вы всегда можете создать новую ветку из любого коммита в вашем хранилище, независимо от того, насколько «испорченным» это может быть - что, кстати, Git понятия не имеет.
По сути, вы можете вернуть свой репозиторий любое состояние, которое у него было ранее, потому что Git не будет явно удалять какие-либо объекты, он будет время от времени только собирать ненужные (висячие) объекты. Так что вам просто нужно выяснить, как выглядел ваш репозиторий. gitk
или git log
могут вам в этом помочь.
После того, как вы восстановили свой локальный репозиторий до состояния, которое вам нравится, вы можете просто перенести его обратно в центральный публичный репозиторий.
# Make sure we're on the master branch
$ git checkout master
# Make a new branch to hold the work I've done
$ git branch old_master
# Reset my local master back to match origin/master
$ git reset --hard origin/master
Теперь вы можете оформить заказ old_master
и использовать его так же, как вы сделали свою ветку